Just because it had a cool name, I downloaded Lazarus from my OS's package repos. I was kind of excited that the language it uses was freepascal. That weekend, for fun, I refactored a few of the apps I had built recently to try other methodologies, and it was a blast from the past. As a kid, pascal was a very different experience, and by the time I mowed enough lawns to afford Delphi, everyone had moved to C++.
It hasn't been completely smooth. Doing more modern tasks like HTTP requests are not included, and adding the plugin for it is a little fiddly, but for your basic GUI tasks, it is actually pretty fun, and simple on a level reminiscent of Visual Basic.
I encourage everyone to give it a try, and though you might not make your name writing pascal software in 2022, its fun like driving a car with a stickshift, or using hand tools to build a table. It is an experience worth enduring to experience the appreciation and perspective it provides.
> and though you might not make your name writing pascal software in 2022
You can certainly make money with it. People still pay for native-code software after all.
Pretend you want to write a ... oh, I dunno, let's say Task tracker, collaboration tool, or order-entry, or some other office productivity tool, consisting of only a few forms.
Sure, you can make a web-based UI, and there's many advantages to doing so, or you could make it a native application, and there's many advantages there too.
I've used the Lazarus IDE to make a small productivity application, and it was by far much easier than to make a web-based GUI.
It was also instant startup, never used more than around 30MB of RAM and ran insanely fast compared to the web-based "native" applications we have now.
> I've used the Lazarus IDE to make a small productivity application, and it was by far much easier than to make a web-based GUI.
> It was also instant startup, never used more than around 30MB of RAM and ran insanely fast compared to the web-based "native" applications we have now.
Silly things like ease of development, lower resource usage, and responsiveness/execution speed are unimportant to real Electron developers.
There are only three things that matter:
1. Sharing code between the web app and desktop "app"
2. Easy integration with web-based backend services
3. Being able to tell management that you use Electron
Microsoft Teams is a perfect example. The backend is so slow, buggy, and frequently down that any time spent improving or optimizing the client app is not going to provide any meaningful benefit. In fact it might have the perverse effect of raising user expectations and decreasing overall satisfaction with the product.
If you wanted something similar (cross-platform native code, "traditional" controls, low hardware requirements, fairly rapid development), you could also use Ultimate++ (https://www.ultimatepp.org).
Ultimate++ is nice, but one of the benefits of Delphi / Lazarus is the use of the Pascal language instead of C++. This can be a point of contention, but I know once I moved from C++ to Object-Pascal, I didn't want to go back.
You are not the only one. A lot of people who experienced using both and could freely choose, have gone with Object Pascal. Lots of people think C++ is too "messy" (among other things that could be said).
The key point though is that many have to or feel compelled to use C++ because of their job or possible job opportunities. There are jobs for Delphi/Object Pascal, just not as much. Though sometimes being a more limited commodity can be beneficial to various individuals. Additionally, for independents, freelancers, small businesses, or mavericks Object Pascal can be wonderful.
> and though you might not make your name writing pascal software in 2022
If you look at TIOBE Index, you will see that Delphi/Object Pascal (presently #12) is often ranked above such notables as Go (Golang), Swift, Ruby, Rust, and Lua. A list of languages many would argue a person could make a name for themselves with.
Not saying that TIOBE is the "be all, end all", but it's not like nobody knows Delphi/Pascal or that there aren't companies that have lots of code written in it. To include that Delphi/Pascal is still being taught in many school systems throughout the world (https://www.youtube.com/watch?v=FHcqZEtWBy0&list=PLxAS51iVMj...).
We also have to be mindful to separate from the propaganda and hit jobs by corporate backed competing programming languages that would prefer people not know how competitive, powerful, and useful that Object Pascal is.
> Doing more modern tasks like HTTP requests are not included, and adding the plugin for it is a little fiddly
FWIW a package can provide components but it should be possible to do HTTP requests out of the box without installing anything using the FPHttpClient unit (there is also a server one too if you need it), which is part of FCL (which is available by default on Lazarus projects):
{$mode objfpc}
uses FPHttpClient;
begin
with TFPHttpClient.Create(nil) do
try
Writeln(Get('http://example.org'))
finally
Free
end
end.
Sadly the documentation[0] is not that great - in fact it doesn't exist aside from the autogenerated stubs - but it should be possible to understand what is going on by the method names and arguments.
Any Delphi experts know of openings for remote devs from Ukraine (now in Germany)? Sorry if inappropriate to ask here, hope it's understood given the circumstances.
Thanks, appreciate it. Asking for a friend with 10+ years Delphi and MS SQL. Focus on warehouse management software for supermarkets, business analytics.
I want delphi to die. Not that I don't like the language or the IDE, quite on the contrary: it is pleasing to use. I want it to die because it remained "too closed" for "too long". Updating from one version to a future version was nightmare, depending on a single vendor is dangerous, the way they ignored multi-platform for decades was bad, historic prices left many hobbyists out of the game, no consensus, no committee, no public consultancy on how the tools and language should evolve, the complete ignorance of how FLOSS tools evolved along around the same period and now most languages and used IDE's are at least partially FLOSS makes me want to see delphi die.
The problem appears to be that the health and popularity of Object Pascal is intertwined with Delphi/Embarcadero. The better of a job that Embarcadero does at promoting their Delphi product, the more likely people are to find out about Object Pascal being still viable and open-source projects like Lazarus/Free Pascal. And it works in reverse too, where those that use Lazarus/Free Pascal will get more professional opportunities because of companies that use Delphi.
Well, I can’t say the total opposite of Swift isn’t great either they make some weird language decisions. I am convinced some of them won’t have happened without the public proposals
I'm grateful that Pascal was the first language I learned, for an unexpected reason:
I was a natural fan boy. We just assume that the thing we happened to land on is for some reason the best. Pascal is the best, Windows is the best, my country is the best, etc, etc. I know people who lived like that their entire (up to this point) life.
If I happened to start with c++ or java, I could stay ignorant forever. I was lucky that Pascal's ecosystem was so limited that I needed to learn c++ and from there I went to java, c#, python, and a little bit of others.
Now, when looking back at Pascal, I have the deep nostalgic emotion, but I know that for most things I can do with it, there are much better tools out there.
I've used a lot of languages both in hobby projects and professionally. I learned pascal in high school when I took the majority of what a lot of computer science departments teach in their first/second year of college. This is after learning C in middle school (this was late 80's early 90's) under the direction of my math teacher who thought I should learn something besides BASIC/assembly.
So, that said, looking back and trying to teach the current generation basic programming concepts beyond variables/loops/etc, aka data structures. I repeatedly think that my high school data structures/etc teachers did a far better job than the current crop trying to wedge more advanced computer science topics into languages like Java, python, C++ or even C. The replacements (Rust) are bad or worse for teaching these concepts because the language just simply gets in the way to much. C is maybe the best of the allowed choices because its possible to write say linked lists, or linked tree structures fairly easy but its got so many foot guns that Pascal manages to avoid. Languages like C++ might be reasonable, until some prof dictates that the class should be using std::unique_ptr() or whatever, which just adds confusion to something that should at its heart be fairly simple.
So in the end, I think Niklaus Wirth actually has a bit of an masterpiece in Pascal when it comes to creating a language for teaching computer science topics.
The fact that I also convinced the place I worked to use Delphi on a couple of greenfield projects in the mid 1990's and that was probably some of the most productive work I've ever done shows that pascal also works just fine in a commercial setting.
You should try going back and taking all you have learned and applying it to modern pascal. You may find it a much more productive language than you remember.
I can identify with this comment a lot. It wasn't that it was great or any type of special technology, it's the memories of all the fun, struggles, and improvement it helped us find along the way.
My senior year in high school was the first year they had a programming class and it was Pascal. The very next year they instead started teaching C++.
As a consequence out of necessity a couple of years later I ended up self teaching myself PHP then Ruby then JS. These days I'm pretty proficient with it.
I had an easier time doing it because of those early concepts I learned with Pascal.
I often wonder what would have happened if I had learned C++ instead.
> I was a natural fan boy. We just assume that the thing we happened to land on is for some reason the best. Pascal is the best, Windows is the best, my country is the best, etc, etc.
Although I've had previous contacts with computers, my first personal computer was a windows box in the beginning of the second half of the 90's. Never had in my mind "windows is best".
HeidiSQL is one of the most prominent real world applications in Delphi I know of. It's been hard to find many others. Most likely they exist at many companies in private.
Delphi also had a place in video game dev at the time. I remember a thick thick thick book at Border's all about Delphi game dev, and once they stopped ordering new O'Reilly books I eventually read that too.
Nice list but i think that some of those entries should use [Lazarus] instead of [FPC] since unlike Delphi (which is a single product), Lazarus and FPC are two different projects and not everything that would work on Lazarus would also work on FPC by itself. As an example, a project that uses FPGUI instead of Lazarus would not be able to use any of the GUI controls marked as "FPC".
I would advise against anyone learning Pascal, any more.
I wish I had instead learned C and C++.
The tooling around Pascal was phenomenal, with Turbo Pascal, Borland Pascal, and Delphi. But the tooling around C++ is just as good or better now, in my opinion.
I would advise against anyone learning C/C++, any more.
I wish I had instead learned Go and Rust.
The tooling around C++ was phenomenal, with Turbo C++, Borland C++, and C++ Builder. But the tooling around Rust is just as good or better now, in my opinion.
> The tooling around C++ was phenomenal, with Turbo C++, Borland C++, and C++ Builder. But the tooling around Rust is just as good or better now, in my opinion.
I know you say it's just your opinion, but that's an extraordinary claim, don't you think?
I know and use both. I use Delphi for desktop GUI applications and C++ for backend servers. Works like a charm. I use other languages / frameworks as well. Trying to stick to a single tool / tech is possible but not very wise.
I looked up http://www.delphiforfun.org which I visited regularly in my teens and early 20s and I noticed that it stopped updating in 2018. After a bit of googling I sadly found the obituary for Gary Darby, the site’s creator. He maintained that site until he was 79! I hope it will be preserved. RIP and thanks for the code.
I look in on it every year or so (maybe every other, recently), whenever I get curious. A mere shadow of its former self when it comes to number of uploads per week, but still there and fighting on.
Active? Has looked like a patient with lots of hoses and sensor wires in every orifice -- i.e, on terminal life support -- for the last decade or so to me.
It's a Worms clone that actually gave me as much joy as the original. What's quite interesting is that the game is written in many languages - I heard that e.g. AI is written in Haskell.
I've been writing professional software for 30 years.
A Delphi app that I released in the mid-90's is still the longest-running, most entrenched, still in-use application of anything else I did in that era. It amazes me that people are still using this little application and I still get heaps of praise for having written it, almost 30 years ago. People are still using it .. a testimony to just how well Delphi works and how powerfully useful apps can be made with it.
I only wish I still had the sources for the app so I could try a Lazarus build an maybe fix a few bugs ..
How come that the word "awesome" hasn't been autoremoved from the title? It was an awesome bug that showed up in many previous "awesome x" submissions.
It hasn't been completely smooth. Doing more modern tasks like HTTP requests are not included, and adding the plugin for it is a little fiddly, but for your basic GUI tasks, it is actually pretty fun, and simple on a level reminiscent of Visual Basic.
I encourage everyone to give it a try, and though you might not make your name writing pascal software in 2022, its fun like driving a car with a stickshift, or using hand tools to build a table. It is an experience worth enduring to experience the appreciation and perspective it provides.
Try it!