I loved Pascal instantly because my first language was mainframe APL, followed by some weird in-house macroassembler that Xerox was using on its 8080-based business boxes. Compared to APL, Pascal is not only elegant but transcendent. Verbosity bothers me not at all (I used to write COBOL too) because I like being able to read and understand what I've written six months after I set it aside. You couldn't do that with APL, and I had a lot of trouble doing it with C.
As a few other people here mentioned, I'm creating a FreePascal edition of my ancient Turbo Pascal book, ripping out stuff that nobody needs anymore, like CGA graphics and TurboVision. (I believe that there's a Turbo Vision clone available for FreePascal, but I just can't force myself to learn it again and write about it, even though I was writing paying apps with it in 1993.) The book is free, and the current version (I tinker with it irregularly) can be found here:
I'm going to stop building the release date into the filename with the next release; just search for "FreePascal SquareOne.pdf".
I'm programming almost exclusively in Lazarus these days, a lot of it for the Raspberry Pi. At some point I'd like to write a couple of shortish books on specific Lazarus topics like databases, and once we get settled in Phoenix I'll give it a try.
BTW, my friend erbo told me about this thread, so I figured I'd stop in and say hi.
> I'm creating a FreePascal edition of my ancient Turbo Pascal book
Getting my hands on an early edition (first or second, I'm not not quite sure) of Complete Turbo Pascal in my teens is a big party of why I ended up as a programmer.
I'm glad to see its still alive, and hopefully still inspiring new programmers.
Much of what exists in contemporary dev tools can trace some DNA back to Turbo Pascal and Delphi 1.0
Anders Hejlsberg is a footnote in the story of a few tools - but was as instrumental as DHH in changing perception of how software could be developed, how the tools look/feel and how objects are interacted with at design time
I see a lot of current work on the DOM, I see a lot of companies wanting portable desktop apps and looking at the DOM as the platform for that, then I look at what Anders did in early 90s and think there is so much that can be applied to current problems
Learn Pascal on an Osborne-1. First project was a device driver - a classroom project no less! Having coded in lots of languages since then, I like Pascal for its structure, its rigour, and uncomplicated binaries and installation. I dont mind if IDE setup is hard as long as anything i build is easily shared with others. Was easier and faster to get Lazarus working on my Mac than Visual Studio 2015 on my Windows (T440p) laptop! FPK/Delphi hands down winner - the only thing easier to share is probably DOS batch scripts.
Recently look at some Go code and thought it looked like simplified pascal. LOL. Agree with the other posters that pascal wasnt ever 'cool' because when it was being used for cool-stuff like writing MacOS it wasnt widely publicised, and unfortunately it was used as a learning language (and lets face it not many of us remember school as being uber-cool!).
There are precious few languages that can be used for learning and for getting real work done - but if you look at those, they have been around for a long time: Fortran, COBOL, C, Pascal, Lisp.
On another note i look at the code, and platforms, and I think that Pascal has an opportunity to be used in IoT applications. Small footprint objects are well suited to constrained environments like my own projects (Arduino, Pi, CHiP, Xbee) where one also needs a compiler that helps to keep the world safe from my bad code (like strict types and pointer bounds!).
The folks working on FPK and with Lazarus have done a superb job. Great tools, amazing cross platform support, and delivering stuff that helps get things done.
I forgot mention Python as a learning langage that is also widely used for getting stuff done. Of all the languages i mentioned it is cool. Ive been using it since 2001 - about the same time as i last used Delphi for work.
So, I downloaded the latest version to OSX. Effortless install. Opened Lazarus and it looks great. Threw a few gui components onto the blank form and hit compile. The program compiled almost instantly, popping up a native gui that looks great.
Excitedly went to click on documentation to learn more and...there is no documentation! Instead, there is a sort of slush pile wiki that, at best, might be considered an unorganized outline for documentation, but that's all. In 2016, that wiki doesn't cut it.
To the Lazarus developers: Lazarus looks awesome. Technically, it appears very mature, but without solid, deep, well-organized documentation how do you expect anyone to learn how use it?
Inside Lazarus, go to the 'help' menu and select 'help'.
There's quite a lot of documentation!
There's also context sensitive help. Put the text cursor over a type name, like 'TForm' in the default code that's there when you start Lazarus. Press F1 to see the documentation for that type.
" there are still many things need to be fixed and enhanced on both projects"
I can think of a couple of minor improvements, but overall for Windows and Linux desktop and database development in Lazarus (which is all I do) I have not really seen anything that needs much in the way of fixing and the code it is producing is pretty efficient and has been in my clients production systems for over 12 months now.
Believe it or not, Lazarus is probably the single most-cross-platform-compatible GUI builder for native apps that exists, anywhere.
Neither Java, nor Qt nor anything else come even close. And the apps are native!
As for the "I don't like Pascal because Pascal is ugly" crowd: it's only different, and it's almost by chance (i.e. reasons external to the language itself) that most of today's production languages have used C for their syntax template; if they've used Pascal, then the C syntax would be the "ugly" one.
Microsoft has basically poached developers working on Delphi to develop the first versions of C# and it showed both in the design of the language (properties, the type system) and the early IDE.
modern pascal is actually pretty good. it's very unfortunate that it isn't considered sexy. i learned programming on turbo pascal and used to think that pascal isn't a serious language. years later, after seeing that it's not dead and dropping prejudices against it i can see that it lost pretty much only because of its perceived uncoolness.
I don't think it's just perceived uncoolness. I learned Pascal in high school AP CompSci and I've always found it's syntax to be ugly and inelegant. But I learned C first so maybe that's why.
I wish they chose a better name than "Free Pascal". It makes it sound like a lower-quality version.
After that recent Object Pascal guide was on HN [1] I've been meaning to try the language out. It looks like it might be a nice alternative to using Ruby on some small side projects where I need a quick OO language to work with.
I've grown attached to static types so it looks like it might be a good option.
My only concern is whether the tooling has been modernized or not.
I'll donate when it all gets setup. I really like Pascal. Jeff Duntemann is writing new intro books and releasing then under a Creative Commons license iirc. It's a great language and a killer environment.
>Jeff Duntemann is writing new intro books and releasing then under a Creative Commons license iirc.
I remember his name as a computer book author from older PC days and mags/books, but have forgotten what he used to write about. Did he write about C or Pascal, say Turbo Pascal, earlier too? Just saw his site (http://www.duntemann.com/) and it seems to show only assembly language books (on a quick look). Not that it matters, of course he could write books on Pascal now, but just wondering whethere he wrote any Pascal books before.
>It's a great language and a killer environment.
Agreed. Was a Turbo Pascal user for some years, great language and lightning fast dev env. Done smaller amounts of Delphi work too, and loved it. Too bad about the corp. issues that have happened, and about no current low-cost edition. They discontinued Turbo Delphi Explorer, or rather the Turbo Explorer series (existed in around 2006) which included Turbo C++ Explorer too, IIRC. And the TD Explorer at the time was available in two versions, for Win 32 and .NET.
Programs written in Turbo C ran faster than programs written in Turbo Pascal, that's why it lost in the MSDOS world.
As an example, WWIV was a very popular BBS in the 80s and early 90s that included source code, so it was popular with a large group of hobbyists. It was originally written in Turbo Pascal but when converted to Turbo C and ran noticeably faster. Other BBSes (Telegard) took WWIV code (allegedly) written in Pascal for their software and they ran slower than the Turbo C version of WWIV. We're talking about 286 4/10Mhz machines with a turbo button, so the difference was noticable. The idea that Turbo C was faster than Turbo Pascal is probably why Pascal lost the MSDOS wars.
Visual Basic was marketed better than Delphi, that's why it lost the Windows wars. Delphi was way ahead of it's time. The VCL (the Delphi library) was robust and modern for the TCP/IP stack. There were components for everything. They released a Linux version called Kylix started in the late 90s. Delphi had many features and compiled to machine code, so it was technically superior to VB. It was much faster to develop with than Visual C++ also. Borland got some executives that made some poor branding decisions, like renaming the company to Inprise (??) then naming it back. Once C# gained traction, Delphi slid into obscurity and was purchased by Embarcado. It mainly exists as a tax on companies who haven't migrated to a more common language.
I learned Turbo Pascal and Turbo C in middle school by tinkering with BBS code. I was taught CS in High School using Turbo Pascal and again in college. It was a great little language that runs very fast machine code, and served me well. It is very capable for production environments, but I prefer C syntax now a days though. If Pascal prompts a return from web to native, I'd embrace it. Web is significantly more tedious than the RAD tools for native applications it replaced for front end development.
Interesting aside, Object Pascal conventions state you should prefix class names with a T (for Type I think). So if are rummaging through an API and you see a lot of types that start with T, you know it was written in a Pascal.
One of the optimization goals for the design of Pascal was compile speed - single pass compilation source > link > binary. That usually also meant less optimizations. On the other hand, Turbo Pascal was really popular as glue code for programs and demos written predominately in assembler for speed... so there's that.
I wonder if a rewrite of WWIV from Pascal to Pascal would've yielded similar speedups, or if it really just was the optimization passes that made all the difference. If so, one might think that a Pascal compiler that targeted C might have been an (almost) as good solution at the time.
I tried out Pascal a while ago and really liked the language. Also installed Lazarus and was able to make a simple Windows GUI. Although now I'm on Linux and may have to give it another go.
I wonder how prevalent Pascal is in 2016. I've been meaning to write some on a classic Mac OS system I have laying around (just for shits and giggles).
Delphi was very common for LOB applications in some European and ex-USSR countries in 90s and early 00s (more so than VB, which, I think, filled the same niche in US). Plenty of those are still running in production. So, while I doubt there's a lot of new code being written in it, there should be quite a few jobs maintaining and extending an existing codebase.
[+] [-] JDuntemann|9 years ago|reply
As a few other people here mentioned, I'm creating a FreePascal edition of my ancient Turbo Pascal book, ripping out stuff that nobody needs anymore, like CGA graphics and TurboVision. (I believe that there's a Turbo Vision clone available for FreePascal, but I just can't force myself to learn it again and write about it, even though I was writing paying apps with it in 1993.) The book is free, and the current version (I tinker with it irregularly) can be found here:
http://www.copperwood.com/pub/FreePascalSquareOne--08-06-201...
I'm going to stop building the release date into the filename with the next release; just search for "FreePascal SquareOne.pdf".
I'm programming almost exclusively in Lazarus these days, a lot of it for the Raspberry Pi. At some point I'd like to write a couple of shortish books on specific Lazarus topics like databases, and once we get settled in Phoenix I'll give it a try.
BTW, my friend erbo told me about this thread, so I figured I'd stop in and say hi.
--73--
Jeff Duntemann K7JPD
[+] [-] dragonwriter|9 years ago|reply
Getting my hands on an early edition (first or second, I'm not not quite sure) of Complete Turbo Pascal in my teens is a big party of why I ended up as a programmer.
I'm glad to see its still alive, and hopefully still inspiring new programmers.
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] analognoise|9 years ago|reply
Hi Jeff, can't wait to buy a copy of everything you write for FreePascal and Lazarus.
[+] [-] emmanueloga_|9 years ago|reply
[+] [-] krige|9 years ago|reply
[+] [-] tluyben2|9 years ago|reply
[+] [-] netten|9 years ago|reply
[+] [-] mtkd|9 years ago|reply
Much of what exists in contemporary dev tools can trace some DNA back to Turbo Pascal and Delphi 1.0
Anders Hejlsberg is a footnote in the story of a few tools - but was as instrumental as DHH in changing perception of how software could be developed, how the tools look/feel and how objects are interacted with at design time
I see a lot of current work on the DOM, I see a lot of companies wanting portable desktop apps and looking at the DOM as the platform for that, then I look at what Anders did in early 90s and think there is so much that can be applied to current problems
[+] [-] nickpsecurity|9 years ago|reply
http://www.modulaware.com/mdlt69.htm
Just found a Github page while looking for it where they might have put up the old source:
https://github.com/Spirit-of-Oberon/Juice
[+] [-] zoom6628|9 years ago|reply
Recently look at some Go code and thought it looked like simplified pascal. LOL. Agree with the other posters that pascal wasnt ever 'cool' because when it was being used for cool-stuff like writing MacOS it wasnt widely publicised, and unfortunately it was used as a learning language (and lets face it not many of us remember school as being uber-cool!).
There are precious few languages that can be used for learning and for getting real work done - but if you look at those, they have been around for a long time: Fortran, COBOL, C, Pascal, Lisp.
On another note i look at the code, and platforms, and I think that Pascal has an opportunity to be used in IoT applications. Small footprint objects are well suited to constrained environments like my own projects (Arduino, Pi, CHiP, Xbee) where one also needs a compiler that helps to keep the world safe from my bad code (like strict types and pointer bounds!).
The folks working on FPK and with Lazarus have done a superb job. Great tools, amazing cross platform support, and delivering stuff that helps get things done.
[+] [-] zoom6628|9 years ago|reply
[+] [-] leledumbo|9 years ago|reply
[+] [-] claystu|9 years ago|reply
Excitedly went to click on documentation to learn more and...there is no documentation! Instead, there is a sort of slush pile wiki that, at best, might be considered an unorganized outline for documentation, but that's all. In 2016, that wiki doesn't cut it.
To the Lazarus developers: Lazarus looks awesome. Technically, it appears very mature, but without solid, deep, well-organized documentation how do you expect anyone to learn how use it?
[+] [-] gnud|9 years ago|reply
There's also context sensitive help. Put the text cursor over a type name, like 'TForm' in the default code that's there when you start Lazarus. Press F1 to see the documentation for that type.
[+] [-] boznz|9 years ago|reply
I can think of a couple of minor improvements, but overall for Windows and Linux desktop and database development in Lazarus (which is all I do) I have not really seen anything that needs much in the way of fixing and the code it is producing is pretty efficient and has been in my clients production systems for over 12 months now.
Keep up the great work chaps :-)
[+] [-] mythz|9 years ago|reply
http://wiki.lazarus.freepascal.org/Screenshots
Rare to see a Native UI targeting so many platforms.
[+] [-] ivoras|9 years ago|reply
Neither Java, nor Qt nor anything else come even close. And the apps are native!
As for the "I don't like Pascal because Pascal is ugly" crowd: it's only different, and it's almost by chance (i.e. reasons external to the language itself) that most of today's production languages have used C for their syntax template; if they've used Pascal, then the C syntax would be the "ugly" one.
Microsoft has basically poached developers working on Delphi to develop the first versions of C# and it showed both in the design of the language (properties, the type system) and the early IDE.
[+] [-] baq|9 years ago|reply
[+] [-] segmondy|9 years ago|reply
lisp, prolog, smalltalk, forth, fortran, even ada.
The challenge for programming languages today is not so much the syntax/language constructs but the ecosystem, libraries, community & support.
See php, it has all that and is very successful.
p/s. I write PHP code and believe pascal is a better language.
[+] [-] trentmb|9 years ago|reply
[0] https://www.embarcadero.com/app-development-tools-store/delp...
[+] [-] ebbv|9 years ago|reply
[+] [-] dmix|9 years ago|reply
After that recent Object Pascal guide was on HN [1] I've been meaning to try the language out. It looks like it might be a nice alternative to using Ruby on some small side projects where I need a quick OO language to work with.
I've grown attached to static types so it looks like it might be a good option. My only concern is whether the tooling has been modernized or not.
[1] https://news.ycombinator.com/item?id=12027008
[+] [-] ics|9 years ago|reply
(Static types, basic OO, syntax, fast compilation)
[+] [-] analognoise|9 years ago|reply
[+] [-] vram22|9 years ago|reply
I remember his name as a computer book author from older PC days and mags/books, but have forgotten what he used to write about. Did he write about C or Pascal, say Turbo Pascal, earlier too? Just saw his site (http://www.duntemann.com/) and it seems to show only assembly language books (on a quick look). Not that it matters, of course he could write books on Pascal now, but just wondering whethere he wrote any Pascal books before.
>It's a great language and a killer environment.
Agreed. Was a Turbo Pascal user for some years, great language and lightning fast dev env. Done smaller amounts of Delphi work too, and loved it. Too bad about the corp. issues that have happened, and about no current low-cost edition. They discontinued Turbo Delphi Explorer, or rather the Turbo Explorer series (existed in around 2006) which included Turbo C++ Explorer too, IIRC. And the TD Explorer at the time was available in two versions, for Win 32 and .NET.
[+] [-] avhon1|9 years ago|reply
http://www.copperwood.com/pub/FreePascalSquareOne--08-06-201...
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] Clubber|9 years ago|reply
Programs written in Turbo C ran faster than programs written in Turbo Pascal, that's why it lost in the MSDOS world.
As an example, WWIV was a very popular BBS in the 80s and early 90s that included source code, so it was popular with a large group of hobbyists. It was originally written in Turbo Pascal but when converted to Turbo C and ran noticeably faster. Other BBSes (Telegard) took WWIV code (allegedly) written in Pascal for their software and they ran slower than the Turbo C version of WWIV. We're talking about 286 4/10Mhz machines with a turbo button, so the difference was noticable. The idea that Turbo C was faster than Turbo Pascal is probably why Pascal lost the MSDOS wars.
Visual Basic was marketed better than Delphi, that's why it lost the Windows wars. Delphi was way ahead of it's time. The VCL (the Delphi library) was robust and modern for the TCP/IP stack. There were components for everything. They released a Linux version called Kylix started in the late 90s. Delphi had many features and compiled to machine code, so it was technically superior to VB. It was much faster to develop with than Visual C++ also. Borland got some executives that made some poor branding decisions, like renaming the company to Inprise (??) then naming it back. Once C# gained traction, Delphi slid into obscurity and was purchased by Embarcado. It mainly exists as a tax on companies who haven't migrated to a more common language.
I learned Turbo Pascal and Turbo C in middle school by tinkering with BBS code. I was taught CS in High School using Turbo Pascal and again in college. It was a great little language that runs very fast machine code, and served me well. It is very capable for production environments, but I prefer C syntax now a days though. If Pascal prompts a return from web to native, I'd embrace it. Web is significantly more tedious than the RAD tools for native applications it replaced for front end development.
Interesting aside, Object Pascal conventions state you should prefix class names with a T (for Type I think). So if are rummaging through an API and you see a lot of types that start with T, you know it was written in a Pascal.
[+] [-] e12e|9 years ago|reply
I wonder if a rewrite of WWIV from Pascal to Pascal would've yielded similar speedups, or if it really just was the optimization passes that made all the difference. If so, one might think that a Pascal compiler that targeted C might have been an (almost) as good solution at the time.
[+] [-] e12e|9 years ago|reply
http://lists.freepascal.org/fpc-pascal/2016-June/048216.html
http://lists.freepascal.org/fpc-pascal/2016-June/048217.html
[+] [-] lllorddino|9 years ago|reply
[+] [-] _qbjt|9 years ago|reply
[+] [-] int_19h|9 years ago|reply
[+] [-] p3anoman|9 years ago|reply
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] systems|9 years ago|reply
[+] [-] DanBC|9 years ago|reply
[+] [-] trentmb|9 years ago|reply