16 ms·
Lazarus 2.0 RC3 – Delphi-compatible cross-platform IDE
- mwexler 8y agoWikipedia provided this simple description, which would be nice to see on the RC post (but perhaps they assumed the only folks interested in an RC post would be folks familiar with the tool already): Lazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler.
- tabtab 8y agoI miss WYSIWYG IDE's like Delphi, VB-classic, and Lazarus. Dealing with HTML "autoflow" and Bootstrap is a royal pain. You sketch a draft GUI that seems a good fit for the application and users, and then realize you have to jump through hoops backward on a unicycle while chewing gum blindfolded to get it right on web browsers. Jetsons WYSIWYG technology yanked from my happy fingers by an LSD "standard". (I'm assuming "office" applications here, not those needing smart-phone UI's.)
- jenkstom 8y agoWe just need a Lazarus target for webassembly and we'll be good.
- tabtab 8y agoHmmm, can Lazarus be used to build a "GUI browser"? For example, can one send a "create button" command or tag to it and have it draw one dynamically? What about new panels and forms? How "meta" can its GUI engine be at run-time.
- lmz 8y agoYes it can do that. That's how the IDE works and displays the GUI designer.
- tabtab 8y agoCan you recommend any documentation on the "meta" angle? Most documentation I find assumes the creation of "static" widgets that are activated or hidden at run-time (or at least act that way).
- vram22 8y agoYes, it may be able to. At least, Delphi, the idea (and language) of which Lazarus is based on, was written in itself, at least for v1, I've read. Probably for later versions too, because Object Pascal (although IIRC the language is now called Delphi, like the product), is a powerful general-purpose programming language, with OOP support, module (units) support, and even some sort of generics (IIRC) in later versions.
- michielr 8y agoPretty sure this is being worked on! If you're really interested I can check with an ex-colleague who is involved in Free Pascal.
- meredydd 8y agoCan I interest you in a very Delphi-like IDE for building web apps with nothing but Python? https://anvil.works https://anvil.works has a WYSIWYG visual designer, with Python for in-browser code as well as server-side. (We compile it to JS.) It's even got a built-in DB if you want it (Postgres-backed). Everything in one language, full front-to-back autocompletion...all the things we missed about Delphi!
- pkphilip 8y agoIf you released this as a node.js type app which can be run directly on the user's desktop and accessible via the browser for some setup functions and via an editor like VSCode etc for the source code editing, this could be a great product.
- pkphilip 8y agoNice product but it may have been better to release this as a opensource product because there will always be a fear that if your company goes bottoms-up, those companies who used your platform will be left high and dry.
- tabtab 8y agoThat's my fear also. Emulating GUI's in web browsers takes a ship-load of code. Therefore, it needs strong maintenance prospects to safely last into the future.
- meredydd 8y agoThe thing is, making Anvil open source now would virtually guarantee that outcome. The market has spent the last few years demonstrating that the sustainable number of large companies whose main product is open source is...One. (Red Hat, if you were wondering.) Even trying to become that kind of company requires a highly speculative VC-fuelled trajectory, which is famous for turning sustainable 100m-scale companies into 1% unicorns and 99% rubble. Even Docker, which utterly transformed its target market, is barely making any revenue ($25m/year on a $1.3bn valuation). All its value is busily being subsumed into Kubernetes, itself a loss-leader from a company (Google) that makes all its money from something else. Anvil-the-company is sustainable, profitable, and growing, and Anvil-the-product is getting better all the time, because we charge for what we produce. We would love to be able to give it away and keep doing that - but basically, we can't.
- akavel 8y agoHeeeey, but actually, unicycle is real fun! Sorry for being OT, but I couldn't resist :D it's just that this exercise you mention seems as a seriously fun idea for one of the many unicycle trials competitions :) just I'm not sure if the chewing gum would up the challenge in any way? That said, I wouldn't really compare JS fighting as similar to really fun unicycle tricks ;D Again, sorry for OT :D https://youtu.be/ePWN7Q4-7kI?t=156 https://youtu.be/ePWN7Q4-7kI?t=156 https://youtu.be/VcwnpLv-iJo https://youtu.be/VcwnpLv-iJo
- AnIdiotOnTheNet 8y agoYeah, me too. They were one of the steps on the pathway of enabling users and blurring the line between user and programmer. Sadly, the industry lost interest in personal computing in favor of turning users into a resource to farm and feed to advertisers.
- tabtab 8y agoSince it's more income to bill for rocket science than bicycle science, there's no incentive for many to simplify UI standards. Right now we are stuck with "rocket science" web-based UI's and JavaScript brain surgery. Don't get me wrong, HTML browsers are fine for most documents and document navigation, but don't scale to real GUI's easily.
- AnIdiotOnTheNet 8y agoSince we're talking web and not native, your metaphor works only if your "rocket science" is performed with used swimming pool materials and your "brain surgery" with gardening tools.
- tabtab 8y agoThe metaphor was more about complexity than success or quality.
- axaxs 8y agoI cut my teeth on VB classic, as I'm sure a lot of folks my age did. I was learning C/C++ concurrently, got through the basics, and of course hurried to GUI programming since that's what I made. It's been 20 something years, but I remember it being something like 31 lines of code to just get an empty window in Windows. With VB it was basically zero effort. I wish WYSIWYG IDEs for both desktop programming AND html (remember frontpage, or hotdog?) would make a comeback in a big way. To this day I shy away from GUI programming because of how tedious it is.
- tabtab 8y agoRe: I [now] shy away from GUI programming because of how tedious it is. It's not really "GUI programming" anymore. It's making HTML/CSS/DOM act like a GUI.
- janvidar 8y agoI also did some VB classic and Delphi back in the day. I later moved on to C++ with Qt. I've not been working on GUI programming much since, but I really enjoyed the Qt experience; good tools and superior documentation. I never liked gtk - much for the same reasons as your Windows GUI C programming; Too verbose for trivial and mundane things.
- floatboth 8y agoIt's only verbose if you use C. GTK is very nice with Rust, C++, D, Vala, Python, JS, Haskell, etc.
- nenadst 8y agoyou could have a look at https://www.tmssoftware.com/site/tmswebcore.asp https://www.tmssoftware.com/site/tmswebcore.asp or https://www.elevatesoft.com/products?category=ewb https://www.elevatesoft.com/products?category=ewb or https://smartmobilestudio.com/ https://smartmobilestudio.com/ All three claim to be a form of "Delphi for the Web"
- nenadst 8y agoand for some Frameworks integrated in Delphi (first two sadly still not available for Lazarus) http://www.unigui.com/explore/what-is-unigui http://www.unigui.com/explore/what-is-unigui https://www.atozed.com/intraweb/ https://www.atozed.com/intraweb/ This one seems to be also available for Lazarus ! http://www.raudus.com/ http://www.raudus.com/ I wrote an old desktop app for medical laboratories in Delphi (started with D2 ...) and am still quite unsure if this would allow me to port at least some part of it for the web in an (cost and time ) efficient and secure way ... Does anybody have some experience really using them ?
- Joeri 8y agoWYSIWYG web tools still exist, but they went SaaS. They’re called “low code development platforms”. If you want to play around with one you can download mendix’s modeler for free.
- tabtab 8y agoIt's not going to take off like HTML did if one has to depend on "cloud" vendors playing nice or lasting.
- bitwize 8y agoIndeed. GUIs should be laid out visually, by hand. Because that's not tedious, and everybody has a display with the exact same size, resolution, and aspect ratio, right? ...Right?
- ksec 8y agoHyperCard > VB-Clasic > Delphi... Then that's it. Somehow we stopped there. Our Computing Speed might have grown 1000x but We somehow manage to put in additional 1000x complexity to cancel out. Not only have Software development not gotten any easier, most software are slo lots more resources intensive.
- simion314 8y agoYeah, it is not a press release, for more info the home page is very informative IMO https://www.lazarus-ide.org https://www.lazarus-ide.org
- rosstex 8y agoI was really hoping this was Lazarus Form Recovery making a comeback, but this is still nice!
- kurtschwanda 8y agoAnother Lazarus comes back from the dead.
- dang 8y agoFrom 2017: https://news.ycombinator.com/item?id=14973706 https://news.ycombinator.com/item?id=14973706
- zerr 8y agoAdding C++ support will really make this project much more popular and viable option.
- badsectoracula 8y agoIt is viable just fine as it is, i'm not sure what you have in mind. In any case C++ support for Lazarus is almost impossible due to the work needed and the projects that will need to cooperate - i go into details here: https://news.ycombinator.com/item?id=15893362 https://news.ycombinator.com/item?id=15893362
- zerr 8y agoI meant, unless you have some very specific reasons, Pascal is not the first language to pick for a new project nowadays.
- Roboprog 8y agoI think most people, certainly me, who would be looking for a Pascal compiler are trying to avoid C++ like the plague. It’s funny when you read about languages like Rust and Go basically trying to undo decades of C-induced damage, reinventing (albeit also exceeding) thangs that Pascal/Modula/Eiffel already had.
- zerr 8y agoYet, it would be good to have an open source alternative to C++Builder. In other words, besides Pascal, to also have an option for a mainstream [native] language.
- jchw 8y agoFree Pascal has come a long way. When I first messed with it, it lacked generics even though Delphi supported them. Nowadays I can compile Delphi code with generics just fine. I don't think I personally would want to use Delphi in this day and age, but there's still a lot of useful Delphi/Pascal code out there and it's great to be able to use it on Linux.
- _red 8y ago>I don't think I personally would want to use Delphi in this day and age I totally understand where you are coming from, however I must say having everything compiled into a static-binary is a powerful thing that we often overlook today. Case-in-point: Around 2007 I was consulting for a manufacturing facility, basically doing accounting system programming. Their warehouse department needed a small app that basic did two things (a) Check to see if a invoice was marked paid so they could ship, and (b) Record the Fedex / UPS tracking number back into the accounting system. This was something that was meant to be added into the main accounting application and installed into the warehouse, but there were the usual practical issues (the PC that existed in the warehouse was an under-powered Win XP machine that couldn't actually run the accounting system, so a new machine needed to be purchased...basically weeks of time were required to solve it, but we needed a solution ASAP). On a whim, I whipped up a simple single-dialog box "utility" in Lazarus / Pascal that would check if accounting had released the invoice and then record the tracking number. Literally took me maybe 3 hours to download, program, test, and deploy. A few months ago I ran into the product owner from that consulting gig so many years ago....after catching up a bit, asking what had changed...he sheepishly added "I've still never got around to incorporating your warehouse 'utility' into the main program yet". I said 'surely its still not that old WinXP box?' and he said no they had upgraded a few times and just copied the .exe over each time and it continued to work. Obviously such a simple 'utility' app is not a great example of why you would choose to use a language / platform, but it is a testament that what it does well, it does well. My 3 hours of billable time amortized out over 12 years now was a really good ROI.
- jchw 8y agoOh yeah, single static binaries are awesome. I think it's one of those things that helped make Go super successful as well. If Go had a RAD, well, it'd be very enticing to me. Sadly they have only touched on UI a little. If you want to write something with Win32 API it's not too hard and there's plenty of good libraries, but sadly there's no VCL equivalent. I'd like that. I guess in that sense Lazarus is still useful. But, I don't find myself needing a RAD too much. What I would've used a RAD for I find Python + Qt to be usable enough for.
- AnIdiotOnTheNet 8y agoI love the idea of a WYSIWYG IDE that's integrated with the language like this, or like VB used to be, but personally I just can't stomach the whole "have to learn yet another language to use it" problem. From what little I've played with Lazarus and FPC it seems really nice though, and I might make use of it for some smaller projects at work in the near future. I'm sick of trying to make web apps and all the ridiculous nonsense with that process. One wonders why we don't have a more generic form of this sort of thing. And no, I don't mean the various "GUI builders" that are out there that produce code you then have to merge with your program, or an XML descriptor that you have to parse with your program, because those are still specific to having bindings for your chosen language. There really isn't a reason I can think of that I shouldn't be able to throw together a GUI in a WYSIWYG editor and maybe define some basic behavior, then give it one or more programs it should run in the background and pass messages back and forth. Or even let me just tie events to a command pipeline and dump the result into another widget, basically just letting a GUI be part of the composable toolset following the UNIX philosophy.
- noir_lord 8y agoObject Pascal is a nice language and it's terse (it's surface is quite small). In a lot of ways it feels like a forerunner of C# (unsurprising as the lead on Turbo Pascal/Object Pascal was Anders Hejlsberg). I loved Delphi 6, still miss it in some ways.
- pjmlp 8y agoFrom the early days I thought it was a mistake for Java and .NET not to follow on what was common back then, and offer AOT compilation out of the box. Java AOT solutions were all commercial (gcj doesn't really count) and .NET had NGEN, but it was only meant for fast startups. .NET was specially disappointing in this regard, given that it had quite some influences from Delphi. We had to wait around 20 years for AOT to start being part of the default toolchains. Had it been there from the start, including proper value and unsigned types in Java, and maybe there would be much less software written in C and C++.
- 8y ago
- hawski 8y agoI was eyeing Lazarus, because it is close to my particular crossplatform toolkit ideal. I think that UI toolkit should use native widgets and near zero cost FFI. So any toolkit that draws for itself is not within my ideal. The most problematic platform for my ideal is Android as the toolkit should run without NDK. C++ does not cut it. Java would work for Android, but on other platforms there's FFI. FreePascal does compile to Java bytecode. It is an experimental feature as far as know, but it's promising. There is lots to like about FreePascal, even if I dislike the syntax a bit. See the Modern Object Pascal Introduction¹ for reference. But memory handling is something that does not fit my vision. I would hope for something similar to Swift - automatic reference counting. I like that the compiler is not LLVM or GCC based. With ARC I can forgive even the manual UUIDs for components. That's how I saw it from quite a big height so excuse me if I'm misguided. At the moment Swift looks promising for me without possible transpilation to Kotlin as seen in one project ². Or D, as it should be easier to fit Java. But I have my eye on Lazarus. It certainly is much more mature a project. ¹ https://castle-engine.io/modern_pascal_introduction.html https://castle-engine.io/modern_pascal_introduction.html ² https://github.com/angelolloqui/SwiftKotlin https://github.com/angelolloqui/SwiftKotlin
- tabtab 8y agoRe: I think that UI toolkit should use native widgets and near zero cost FFI. If the target audience is cross-platform, that's hard to pull off. Each OS's native GUI engine is too different. Emulating a common target behavior is usually better (until a good general GUI standard comes along). Maybe your particular need is not cross-platform, but Lazarus's goal is.
- badsectoracula 8y agoFWIW LCL (Lazarus' framework) emulates the Windows behavior (there are even some reimplementations of Windows functions in non-Windows platforms to assist with that) since the API "descends" from Delphi's VCL which is Windows-only (and IMO it makes perfect sense that if you need to emulate some OS's behavior to focus on the most popular one). The end result is obviously that under Windows things work great, under X11/Linux with the Qt (i think both 4 and 5 are supported nowadays) and Gtk2 being generally fine as they mostly behave like Windows (especially Qt) and the worst being Mac support since it is so different from Windows (that and the Mac backend was originally written using Carbon as that was easier to interface with FreePascal and still to this day is the most robust backend for Mac, although in reality both the Carbon and Cocoa backends aren't that great). And of course the programs despite using native widgets, still look like Windows programs on a Mac dress ([0] is an old screenshot from my 3D world editor compiled under Mac, the Windows-isms are clear). You can obviously try to make things look more Mac-y (and i did try a bit) but you need to do so much (and in a different branch since some changes can be very invasive) that IMO isn't worth the effort unless you really want to get that "Mac look" (but be prepared for a lot of custom code and changes to bypass LCL). [0] https://i.imgur.com/CMaKlZg.png https://i.imgur.com/CMaKlZg.png
- dejv 8y agoLazarus is great, I just hope they create full support for MacOS. Curent state is more or less broken and not really usable.
- rcarmo 8y agoI installed it a year or so back for testing, and I find it especially telling that you still have to download three independent disk images (compiler, GUI, extras). Even sadder is the fact that instead of having a regular Mac app bundle, the installers spray things all over the filesystem. It’s defensible for the CLI tools, but hardly native. Still, I look forward to final release - I just hope it has a better native look and feel than 1.8.
- geff82 8y agoI just recently loaded it to make a simple prototype application with it and it was a smooth and easy process. I still hesitate to fully do a big project with it in almost 2020 (I was proficient with Delphi 20 years ago). But if you leave the tech-coolness factor aside, Lazarus is a powerful tool.
- saganus 8y agoHas anyone used a recent Lazarus version to create apps that can connect easily to an HTTP API? Some months ago I had a need to create a "quick and dirty" API utility for internal use and I remembered about Lazarus. However I couldn't find an HTTP client component that I could use. I just wanted to do the equivalent of a curl GET/POST call. I'm not sure if maybe I'm not familiar enough with the wiki structure so I missed it, but I remember I searched for about an hour before I gave up. I'd really like to start using a Delphi-like IDE again as I think it is a very useful and productive tool, especially for ad-hoc stuff. Any pointers in the right direction would be greatly appreciated!
- DisownedWheat 8y agoI made one that consumed the HN API a little while ago (maybe a year?) using the fphttpclient library bundled with Lazarus. It was pretty simple to use and all the documentation is on the wiki[1]. It is a lot more low level than I am used to personally but it was fun nonetheless. [1]http://wiki.lazarus.freepascal.org/fphttpclient http://wiki.lazarus.freepascal.org/fphttpclient
- saganus 8y agoAh! I do remember I clicked on that briefly but I thought it was too low level like you said, and I thought there would be something else so I kept looking. I guess I was wrong, but it's good to know there is something that works. It also doesn't look that bad anyway, so I might as well give it a try. Thanks!
- zoom6628 8y agoI created a small app to read the Epicor ERP api from freepascal. Fast and simple. Did it as much to refresh my pascal knowledge as to show others that it should not be ignored as a language. As a language is very rich and more cross platform than most others. Lazarus is a cinch to create a GUI that you can then cross compile for other platforms.
- thijsvandien 8y agoIndy is one of the more commonly used networking libraries. It’s open source and in active development (with few breaking changes). Works for Delphi as well as FPC. I’ve had great success with it for FTP, HTTP, POP3, and SMTP.
- frbaroni 8y agoJust advertising, you can use Lazarus to build WebApps nicely using Brook Framework: https://github.com/silvioprog/brookframework https://github.com/silvioprog/brookframework
- TomMarius 8y agoNo screenshots :-/
- Hasknewbie 8y ago...And no doc. On the FreePascal wiki, the Brook page points to a 404 on GitHub.
- edwinyzh 8y agoor mORMot: https://github.com/synopse/mORMot https://github.com/synopse/mORMot
- int_19h 8y agoSomething I always wondered about - what's the current state of affairs wrt Gtk and Qt support? Both are available (different versions, even!), but which one is preferred, so to speak? I've noticed that e.g. Debian installs the Gtk version of Lazarus by default, if you use the virtual package. But it's not clear whether this is a conscious choice, or it just dates back to when they only had Gtk.
- badsectoracula 8y agoGtk2 is the most mature one, Qt4 follows next (and AFAIK you can build it for Qt5 too but never tried it myself) and Gtk3 is in very early stages. Gtk1 might still work too, but the only distro i know that ships Gtk1 is Slackware. AFAIK Gtk2 is the preferred one for shipping since it is still widely available and you can simply give a binary (Lazarus uses a rather old version of the Gtk2 API by design so that it is compatible with almost every Gtk2 distro out there, including some that are a few years old). Qt4 and Qt5 require an intermediate shared library that provides a C API and Pascal bindings for it and in addition Qt4 is removed from some distros.
- zoom6628 8y agoIts funnt how people will not want to use Pascal of any flavor because its perceived as old/obsolete and yet the same people have no problem firing up AWK to solve a text processing problem. LAzarus provides a great way to address the perception. Fast, free, rich language underneath. Im about to start using in my hobby IOT stuff, but as other posters have pointed out, it works great for Enterprise level stuff as well. Single exe executable is, in my books, a huge advantage. FTR have started looking at nim as well which seems so far to be bit of a pascal 'reborn' and it also compiles down to single executable. I recommend people look at both if you are needing to distrbute software without the normal installer drama. Bottom line i believe there is no software silver bullet. Each language has pros and cons and the biggest challenge these days is choosing the appropriate one to use.
- floatboth 8y agoIt's the aesthetic ("program", "procedure", "begin" and "<>") and the association with proprietary software (Borland) that make Pascal feel "uncool". While Awk, like C, Is Unix™. Timeless, classic, already there, and cool. This is absolutely just subjective crap, but this is how most of us unix-heads feel :)
- ontologiae 8y agoSome years ago, I had to write program that extract a foot pressure platform for an orthopedist, and I had to do it with a closed-source Delphi API. Delphi was already old at that time and difficult to find. I though about Lazarus and it works perfectly with the Delphi blob file. It's a very great tool.
- analognoise 8y agoHi everyone, I just want to encourage anyone who is on the fence to give Lazarus/FPC a shot. It's LGPL, there's no company that can take it away, and it generates native binaries without the bloat and garbage of Qt or the mental gymnastics of C++. It's cross-platform native and really wonderful. Give it a try. The community is awesome.
- ablekh 8y agoAh, good ol' Delphi ... Sweet memories ... (A former user of Turbo Pascal, Delphi and C++ Builder here.) For some desktop applications, using Lazarus is most likely fine. For a wider adoption, it needs a rich(er) set of VCLs and a seamlessly integrated way to build modern Web applications. Just my 2c.
- boznz 8y agoThanks guys. Getting better all the time..