5 ms·
I still miss Visual Basic + WinForms, as a teenager it was such an easy way to put together a functional UI, I know it has it's detractors, but I can't think of
by lvturner 5y ago
I still miss Visual Basic + WinForms, as a teenager it was such an easy way to put together a functional UI, I know it has it's detractors, but I can't think of anything I've used since that was quite so fun to use and so quick to get up and running (if anyone knows of something - I'd be very keen to learn of it!)
- conz 5y agoI still miss Visual Basic + WinForms If you don't mind running Linux binaries in Windows, then take a look at GAMBAS, a solid, contemporary Object Basic VB equivalent: http://gambas.sourceforge.net/en/main.html http://gambas.sourceforge.net/en/main.html
- Yuioup 5y agohttps://www.lazarus-ide.org/ https://www.lazarus-ide.org/
- analognoise 5y agoLazarus/FreePascal tech slaps. It will blow your mind.
- KronisLV 5y agoDropping by to second this statement: it really is a good example of RAD (rapid application development) for desktop software, since it supports a variety of platforms, has a UI toolkit that just works across them and doesn't need to depend on many components on the target system either, or a particular version of a particular runtime. The language is also pretty simple and doesn't feel that much worse than Java, whereas the Lazarus IDE just reminds me of NetBeans - it's no JetBrains product, but it's also perfectly passable and has everything you need. The compile times are also excellent, the compiler itself is decently friendly with its error messages and the runtime itself lets you write code that feels safer than C++ in most cases. Oh, and it really comes with "batteries included" - you'll find components for everything from UI elements, to database access, to working with events and such. Here's actually a large list of all sorts of software that has been created in it: https://wiki.freepascal.org/Projects_using_Free_Pascal https://wiki.freepascal.org/Projects_using_Free_Pascal Now, the bad things. It's basically dead. Sure, there are contributors who keep working and they do have a roadmap here: https://wiki.freepascal.org/Roadmap https://wiki.freepascal.org/Roadmap However, there is no hype around Pascal, many people disliked the language for a variety of reasons. No one also seems to care much about its advantages for some odd reason, instead people are talking about Electron, JavaFX/OpenJFX, .NET MAUI/Avalonia or other new technologies that attempt to do what Lazarus did many years ago, with varying degrees of success. Sadly, to me it seems like technologies live or die by how much hype there is around them and how many thousands of man hours people are collectively willing to put into them to create brilliance. And Lazarus doesn't have that anymore. Compare both the IDE, its approach to things, as well as Pascal nowadays with the likes of Rust - the latter gets hundreds of libraries created for it, thousands of tutorials and will have developers that literally grow up to like and use it. The former feels neglected in comparison, you won't be doing web development while utilizing super popular libraries that attempt to cover most concerns like Rocket (https://rocket.rs/ https://rocket.rs/) does. You also won't be interfacing with the likes of GraphQL, or even RabbitMQ, due to a lack of interest in developing libraries for those, as well as many other technologies. It might be a similar story for something like YAML or TOML. Nor will you find many good books and tutorials, maybe apart from this nice piece of writing: https://castle-engine.io/modern_pascal_introduction.html https://castle-engine.io/modern_pascal_introduction.html
- gaganyaan 5y agoI clicked on the the castle-engine.io link out of curiosity and then went to the Hello World example, and was greeted by this line: {$mode objfpc}{$H+}{$J-} // Just use this line in all modern sources That screams "lots of old cruft". Poking around the rest of that tutorial, I see crufty things like inheritance, manual freeing of memory, and a whole section on CORBA. I can't speak to why Pascal died, but I would guess that historical baggage is the thing that's preventing a revival.
- KronisLV 5y agoIn many ways, that's the price you pay for long term backwards compatibility. After all, JavaScript didn't remove the function(){} syntax either when the arrow syntax was introduced. Moreso, React hasn't remove class based components either as of yet, even though we have hooks and function components now. I actually find myself wishing that Java 8+ hadn't removed so much of the standard library without backwards compatible ways to reintroduce the logic, since now the transition from 8 to newer releases is a massive pain, especially because of migrating a 1M SLoC enterprise app is no small feat. So yes, Pascal has baggage but it's not always a bad thing.
- api 5y agoGUI design tooling and programming has regressed dramatically since those days. It's like we decided that GUI programming should be maximally inconvenient and ugly.
- PaulDavisThe1st 5y agoI don't agree. What has happened is the scope of "GUI programming" has changed significantly. "VBLANK-synced animation with simultaneous multi-touch drags" was not a thing in the 80s, 90s and barely the 2000's. Now it's a basic requirement. Plenty of other examples of features like this, which don't change the demo code for a "Hello, World" example, but have massive implications for the internal structure of GUI toolkits. Also, there's more focus on cross-platform now, which adds its own complications.
- api 5y agoThe regression has been around what it takes to design a UI. We've abandoned visual design in favor of ugly HTML/XML markup or coding the UI layout manually, both of which are much slower and make design a lot more difficult.
- md8z 5y agoIn my experience, that is a side effect of the complications mentioned in the GP. It has become increasingly difficult to create RAD tools that work well for both designers and programmers at the same time. Modern tools will usually target one or the other. Example: Even when you get into something basic for the 2020s like a responsive interface, you can't really do that without introducing code because there is complex logic in the break points.
- hdjjhhvvhga 5y ago> Also, there's more focus on cross-platform now, which adds its own complications. We are talking about Windows now, and there is zero cross-platform compatibility in Microsoft's UI frameworks (unless you mean cross-architecture between x86/amd64 and arm32/arm64). It is against their interests and they will never do it, just like Apple.
- whoknowswhat11 5y agoExactly the same feeling - even on Windows there really isn't anything like it - even from Microsoft. The amount of crap we have to wade through is crazy. I tried to follow the suggestions. WPF, Silverlight, UPF then XAML islands? But it's mostly a mess / trash. I feel like Silverlight has been sunset. WinRT stuff is gone? WPF - not sure. Even weirder, they can't seem to get the designer working (this was what you could use to drag and drop control with way way back). It's like billions are getting flushed down the toilet over at Microsoft. I've also tried using their HTML solutions / a somewhat similar mess - not sure even they have had any clue what they are doing for last decade. Maybe the new hotness will be .NET MAUI?
- meibo 5y ago.NET MAUI is all of the same, but tied together with Xamarin and a new name. You probably won't find anything exciting there.
- electroly 5y ago> Exactly the same feeling - even on Windows there really isn't anything like it - even from Microsoft. WinForms itself is still around to this day, and Microsoft is actively updating and supporting it on the latest .NET versions. You can just pretend that none of that other stuff ever happened. I've been writing WinForms apps for 20 years, since the initial Visual Studio .NET beta. It still has that same high level of productivity that Visual Basic did.
- snuser 5y agoThe windows 8 push ruined anything good about windows desktop development since then it's been a madhouse -- makes the JS world look organized
- TrispusAttucks 5y agoTotally! Felt like it was a similar "magic" to the older skool BASIC of the previous era. Also: Linus Torvalds allegedly said: "I personally believe that Visual Basic did more for programming than Object-Oriented Languages did. Yet people laugh at VB and say its a bad language, and theyve been talking about OO languages for decades. And no, Visual Basic wasnt a great language, but I think the easy database interfaces in VB were fundamentally more important."
- sleightofmind 5y agoPreparing to duck... Xojo is proprietary, free for non-commercial use, software platform that I'm told is quite similar to Visual Basic. I never used VB so I can't vouch for the similarities, but it looks similar. Usable on Linux, Apple, Windows, and also generates code for iPhone apps. I suspect its users are overwhelmingly Windows programmers and that windows is its native land. Very easy to learn and use, nice IDE. Has all the common widgets/controls you've come to expect. That said, I second the Lazarus recommendation, though my needs are simple enough that Tkinter suffices for me.
- hdjjhhvvhga 5y agoSeems good and inexpensive (when compared to Delphi!) but Mac is still required for iOS development just like with similar projects, so I'd say it's semi-cross-platform.
- bitwize 5y agoTcl/Tk, which does automatic layout, is cross platform, and lets you slap together a simple GUI to automate a task in a few lines of code. I never liked rat wrestling to lay out a GUI, but there are tools for that as well.
- tinus_hn 5y agoXCode, objective-c/swift and cocoa achieve about the same thing, as long as you follow a basic tutorial. The problem with it is that they do everything ‘the right way’, which is not the easy way. So if you want to show a list of 10 things, you have to implement an interface that would still work fine if the list suddenly had 100000 things. Your documents are supposed to use an interface that has undo/redo all the way. Your interface is created out of components that have built in accessibility and internationalization support. Nobody cares about that when you’re just building a basic app with one form. So getting started is hard.