5 ms·
A better solution: FreePascal + Lazarus. Cross Platform. Native. Compiled. A RAD tool that is tough to match.
by analognoise 10y ago
A better solution:
FreePascal + Lazarus.
Cross Platform. Native. Compiled. A RAD tool that is tough to match.
- jadbox 10y agoFirst time I've heard of using FreePascal + Lazarus. Any success stories?
- analognoise 10y agoI coded a viewer for a binary file format reader at work that launched Octave via a TProcess and communicated with it over pipes. Rather than rewrite the Matlab that did the file processing, I just called the same functions our analysis guys were using. To get the data into Pascal, I had Matlab write binary files to disk and then read them in - this is because the pipe implementation on Windows (it was faster than the pipe). Then I used the BGRABitmap's BGRACanvas as a component to draw the bitmap images (frames of data). To this I added some crosshairs. There is also a chart component that displays the data that makes up our range calculation. It came to ~5MB executable, one non portable function (I asked Windows the size of the file Octave is writing until it returns the correct value, and I block on it - not bright, but easy to do. I prime the message pump with Application.ProcessMessage in that loop so the user doesn't see the blocking action. I compressed the executable down to 1.5MB, just to see how far it would go. The project is portable to Linux except for the one function (which will go in an ifdef when I get around to it). All of this with visual feedback, no make files, and 100% free as in freedom, Borland/Embarcadero can't take it from me, can't "change directions to focus on Enterprise", whatever. The community is amazing, and answered all of my questions, and many of them really know their shit. I can't recommend it enough.
- edwinyzh 10y agoThanks for sharing your real life experience, as a Delphi developer I've been watching FPC/Lazarus becoming more and more mature over the years, what a exciting thing! If you need an ORM/Web framework, check mORMot out, with the supplied rich set of samples, it's easy to get started: https://github.com/synopse/mORMot/tree/master/SQLite3/Samples https://github.com/synopse/mORMot/tree/master/SQLite3/Sample...
- david-given 10y agoWhat's FreePascal's story with data structures? My only experience with Pascal has been really old-school Pascal, which is a pointers-and-explicit-allocation language like C; if you want a map of things, you need to build one from scratch, track pointer lifetimes, remember to free stuff explicitly, etc. Does FreePascal do better?
- analognoise 10y agoYou have the option to do it manually, of course - full power to the programmer! However... If you don't want to track pointer lifetimes, you can use interfaced objects, which are reference counted. There are tradeoffs there, but you get to choose them. The Lazarus IDE is setup out of the box to have debug builds include heaptrc - running your program in debug mode gives you a printout of anything you forgot to free. This is what I've been using. Do you have a particular example or data structure you're interested in? I'd be glad to help determine if FPC/Lazarus fits your use case.
- squarefoot 10y ago+1. Unfortunately it pays the "not being C, C++ or Python" tax in having therefore much less popularity than GUIs based on the above, but to me is among the best solutions around. http://www.lazarus-ide.org/ http://www.lazarus-ide.org/ edit: ...And it produces working GUI applications on *PI boards too (ARM). That's one big step beyond being Linux+Mac+Windows only.
- bsder 10y agoRecommending Delphi (or something compatible like FreePascal) is not going to win you my support. Every Delphi-based app I have used has been a horrible bodge of bugs.
- clouddrover 10y agoI think that would have more to do with the applications themselves as opposed to anything intrinsic to Delphi. I've used plenty of applications written in Delphi and they've worked fine. Skype for Windows was written with Delphi (and maybe still is). Delphi's pretty good. You should try it out: https://www.embarcadero.com/products/delphi https://www.embarcadero.com/products/delphi
- mhd 10y agoI would guess that's mostly a result of a lot of them being Q&D ("RAD") database CRUD interfaces, done on contract by a single developer, rarely touched again. Those tend to be awful in every language. It's been a while, but I think my main complaint about Delphi was grid-based layouts and the static interfaces it creates. Fast, but usually don't respond well to resizing.
- theprotocol 10y agoThanks for posting this. I've just reached the point where I need to look around for a cross-platform RAD tool for a side-project which will require a lot of experimentation, so this is fortuitous timing. :)
- mtkd 10y agoI had a look at this again a few months back - Lazarus is where I got to also - but it felt a bit of an underwhelming/complicated solution esp. if you used Delphi or even VB 20 years ago more and more people are talking about it again now - even though most of the current tooling hotness is focused on mobile maybe something will come out of the .NET Core projects now it's all open source - it feels like that has most potential right now there is a huge gap in the enterprise software market for a simple cross-platform app framework with intuitive ways to interface to SQL and web APIs - suitable for accounts juniors to build small data apps (instead of bending Excel macros round the problem) but also suitable to build high-function business apps (instead of pretty but barely usable web apps every business I know has on life-support which nobody dare touch)
- clouddrover 10y ago> there is a huge gap in the enterprise software market for a simple cross-platform app framework with intuitive ways to interface to SQL and web APIs I'd say that's the target market for Delphi. It's expensive but effective.