Free Pascal 2.2 Has Been Released
Daniel Mantione writes "Free Pascal 2.2 has been released. Several new platforms are supported, like the Mac OS X on Intel platform, the Game Boy Advance, Windows CE and 64-Windows. Free Pascal is now the first and only free software compiler that targets 64-bit Windows. These advancements were made possible by Free Pascal's internal assembler and linker allowing support for platforms not supported by the GNU binutils. The advancement in internal assembling and linking also allow faster compilation times and smaller executables, increasing the programmer comfort. Other new features are stabs debug support, many new code optimizations, resourcestring smart-linking and more."
I am TheRaven on Soylent News
TurboPascal was great. Or is it Delphi now?
I still need a blue screen to write code quickly.
FreePascal is probably the best representation of what Pascal used to be. Unfortunately after years and years of incompetent management, Delphi remains just an empty shell of its former self. The project was tossed around too many times now, shrunk down, and there are no guarantees for how long it'll exist or be sold to unknown 3rd party.
Many companies with active Delphi code projects are porting to FreePascal (other reasons aside from the sad state of Delphi include compatibility with Mac and other platforms).
The "support route" requires more than. a compiler. It requires developers who know both the technology and culture, which are drastically different from those of any other language. Not bad, just different. Which is why Turbo/Delphi/Object/Free Pascal has always been fiercely opposed by management (which doesn't care for nonstandard technology) and fiercely defended by developers (who love its tiny compile cycle and elegant features).
The suits will win in the end, because they're breeding faster. There's not a lot of incentive to become a Pascal expert, because it's perceived as a fringe language. (To some extent, that's a self-fulfilling prophecy, but that doesn't make it any less true.) So there will be fewer and fewer developers who insist on working in Pascal, and always the same number of managers who insist on switching to a "standard" language.
So Pascal is doomed. Yes, they've been saying that for a long time, because it's been true for a long time. Religions don't die quickly.
Personal note: I used to work for Borland and was responsible for documenting a big chunk of the Delphi API. Fell in love with the language during those years. Driven out by the sheer insanity of Borland management. Now I can't bear to work in the language — too depressing.
Your post is right on the money, but maybe I'm biased. While my first language was interpreted BASIC, my first compiled procuedural language was ... Turbo Pascal 3.02a. It was also my first OOP language, or, more correctly, Turbo Pascal 5.5 was. I yearn for the days of that Borland compiler ... it was FAST, and it generated small, highly-optimized executables -- well before anyone else did.
I've used Free Pascal for the odd project here or there, but, well, sadly, these days I find myself mostly using C and Python. Don't get me wrong -- I like C, and I especially like gcc, and Python -- well, Python reminds me of the old days, in many ways, even though it's different. But Free Pascal will never pay the bills.
My blog
- The standardized language was very small, so there was a tendency for it to fracture into many incompatible languages.
- At that time, the implementations represented a string as a length byte followed by the string data, so you were limited to strings of length 255.
- I don't think there was any (standard) way to defeat the strong typing in cases where you needed to.
- Was there garbage collection? If so, I don't recall it as being an idiomatic part of the language, except maybe for strings...? Well, most languages back then didn't have it (and gc's sucked back then, so gc languages tended to be slow), but today...
- I was always annoyed by the gotchas in the syntax -- the language seemed unnecessarily picky about periods and semicolons.
Has any of this changed? Has modern pascal settled on a single standardized version of the language? Is gc easy, idiomatic, and consistently supported in libraries and language constructs? Is there good unicode support? It seems to me that today, if I wanted a typesafe language I'd use java, and if I wanted a language that compiled to native code I'd use C or OCaml.Find free books.
Thing is with Pascal: it's designed to be very easy to compile. (So CS students could use it for their first stab at writing a compiler; this was before grammar generators made hand-built compilers obsolete.) So compiling only takes one pass, and even that pass executes quickly. Very handy when you're working with an IDE....
Ach. Getting depressed again.
Pascal was defined after grammar generators (e.g. yacc) were around. Pascal was fun to compile because one could write a recursive descent parser for it straight off the "railroad diagrams" used to define the language. In fact, the ETH "P2" compiler (written by Urs Ammann) was such a compiler, and was the start of many other compilers. If I remember correctly, LL(1) is a proper subset of recursive-descent-able. Most everyone else uses LALR(1), which is not.
You probably should have said "easier and faster to parse" rather than say "takes one pass." It's mostly human-in-the-loop and optimization issues that make compilers slow (especially on modern hardware). Decomposed problems are easier problems to solve, and common intermediate languages (across a variety of languages) help leverage the human investment across multiple compilers. Also, "back in the day" things like caches were oh-so-new, and optimization requirements were laughably simplistic.
It's worth pointing out that most, if not all, of the objections in Kernighan's famous essay do not apply to Borland's Pascal dialect.
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
It was doomed, because Borland completely and dramatically misunderstood Linux. We ALL (Well the delphi heads) *WANTED* kylix, and we all collectively where sporting boners when told it 'did' GPL.
What we instead got was a buggy product that appeared to have alot of winelib in it (what the heck was that font thing?), and more to the point, it treated the GPL as if it was shareware. If one got the 'open source' version, which wasn't actually open source, we could make 'gpl' programs only, but by GPL, it meant "Well your program is GPL, but we are going to force a splash screen on your program that says its gpl and suggest updating to the full version." That was insulting as hell, and completely wrote it all off as an option for us.
Borlands problem is the attentiveness it paid the low-end and hobbyist market in the turbo days was completely blown out the window by the time it moved to Kylix. Hobbyists, students and small business MUST be paid attention to, or how the hells a kid supposed to learn your platform. Linux still has a large hobbyist contingent motoring it along, and in fact proved that hobbyist gift culture could power industry and commerce too.
What was really hard, was Delphi coders understood open source well. We loved sites like torry.ru that had huge collections of awesome open source librarys we could mash into our stuff to make our work days easier. In return we often packaged up our own little inventions and put them out there for other coders to use. Thats why we where so excited about kylix. What a let down.
Now of course we are being enticed back in with the 'turbo explorers' ('Hey kids! Its free!').
Except one cant install open source libraries by design. Way to piss on the Fanbase Borland!. Its a shame too. I was looking forward to returning to Delphi after all those years. Us hobbyists are still out in the cold.
I just hope people put some support into finally getting Lazarus and Free Pascal 'finished'. Its 95% there, and when that happens, we can finally tell the boss to cancel that Borland subscription, because coders *hate* being taken for granted.
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.