[HN Gopher] Ask HN: Are people still using Pascal?
       ___________________________________________________________________
        
       Ask HN: Are people still using Pascal?
        
       Pascal, and later on Delphi, was what introduced me to programming
       20-something years ago. As with most folks in our generation, I
       quickly discovered other options, more suitable for that relatively
       fresh thing called the Web.  So, i generally considered Pascal a
       dead language.  I was surprised to find out the other day that
       Delphi is not only alive, but thriving in its own way. Its
       community is as strong and as fervent about using it as it was back
       then. Even on the open-source front, there is an alternative IDE
       called Lazarus that offers a similar developer experience at no
       cost.  This got me curious. Who is still using Pascal/Delphi in
       2023 and what for? Has it matured beyond the desktop app? Has it
       transitioned into the cloud-native era?
        
       Author : p5v
       Score  : 123 points
       Date   : 2023-02-25 18:42 UTC (1 days ago)
        
       | Tozen wrote:
       | > So, i generally considered Pascal a dead language.
       | 
       | Delphi/Object Pascal never went away, but rather it was targeted
       | by various competitors in arguably their misinformation campaigns
       | against it, in attempts to sweep it out of the way. Pascal/Object
       | Pascal was going up against languages like C, C++, C#, etc...
       | Languages that were promoted by powerful American companies like
       | AT&T and Microsoft (to name a few). Even calling Pascal a "dead
       | language", is indicative of how relatively successful the
       | negative media propaganda was and is.
       | 
       | Pascal transformed into Object Pascal, but unlike say C's
       | relationship to C++, Pascal and Object Pascal is much more
       | closely aligned. This is reflected in how Object Pascal can be
       | written, and with its most popular compilers (Free Pascal and
       | Delphi). Outside of the USA, Borland and then Embarcadero has
       | continually maintained a significant presence in many school
       | systems. So while various Americans might have been tricked into
       | thinking the language died off (especially with odd websites
       | continually claiming its dead), others around the world have been
       | introduced to Delphi, Turbo Pascal, Free Pascal/Lazarus, or
       | PascalABC as their first programming language. The ton of
       | Pascal/Object Pascal books that were written, and some new ones
       | still coming out, also makes it much easier to teach.
       | 
       | So, what is happening, is that various people are rediscovering
       | Object Pascal and are surprised it's still a significantly used
       | language. Sometimes, people only just realizing that Delphi (the
       | compiler/IDE), is using a dialect of Object Pascal. The TIOBE
       | Index has been showing Object Pascal hovering around the #15 rank
       | for years. Meaning Object Pascal, is just as alive or successful
       | as notables like Go, Swift, Ruby, Rust, Lua, etc... Another
       | element about this, is thinking that if a language is not in the
       | top 5, then it doesn't really exist or has failed. That's also
       | not how things work nor realistic thinking. There are thousands
       | of languages, so making it even to the top 50, is both a struggle
       | and an accomplishment by itself. Object Pascal, has stayed near
       | the top for a long while, thus demonstrating its an all time
       | success and great.
        
       | uneekname wrote:
       | I have very little understanding of how Pascal and Delphi are
       | designed, or what they're good for. Any resources for learning
       | about these languages, for someone who was born after their
       | primetime?
        
         | anta40 wrote:
         | I started learning Pascal (using Turbo Pascal 7) in ca
         | 2003-2004, then learnt Delphi to write Windows desktop apps
         | with MySQL. Probably pretty advanced for a high schoolers at
         | that time.
         | 
         | Pascal is a general purpose programming language (like C/C++),
         | which is not limited to teaching programming basics. The first
         | Photoshop and classic MacOS were partly written in it.
         | 
         | All the cool kids nowadays most likely use Go or Rust. Pascal
         | is still alive pretty well, even though you don't see it often
         | enlisted on job vacancies these days. Now you can use Delphi to
         | write MacOS, Android, and iOS apps as well. If you want to
         | write desktop apps which easily buildable on Windows/Linux/Mac,
         | then Lazarus is a good option. Of course there's an ongoing
         | effort for Android: LAMW
         | (https://github.com/jmpessoa/lazandroidmodulewizard)
         | 
         | A good reference is "Pascal in Three Days". Should be enough to
         | help you learn the language basics.
        
         | mike_hearn wrote:
         | Not sure if there are many now, it was always a commercial
         | platform. Here's the gist based on what I remember. I wrote a
         | bunch of Delphi apps in the 90s and actually my first open
         | source project was called the Pythian Project which despite the
         | name was an effort to create a 3D MMORPG in Delphi.
         | 
         | Delphi was a combination of a lightning fast compiler which
         | produced small and memory-efficient binaries, a fairly advanced
         | OOP language called Object Pascal, a widget toolkit that
         | wrapped the win32 API, a (for the time) pretty advanced IDE
         | with visual GUI designer, and a giant pile of frameworks for
         | Windows-specific stuff like COM and database access. The
         | primary designer of Delphi was eventually hired by Microsoft to
         | C#. It cost a few hundred dollars in its heydey and that let
         | you build and redistribute as many apps as you wanted for free,
         | these days it costs thousands of dollars.
         | 
         | Delphi was a child of its time. In the 90s and early 2000s the
         | primary environment programmers targeted for app development
         | was Windows. The web existed, and people were trying hard to
         | make apps with it, but they were extremely crude and slow so
         | any self-respecting app developer was making desktop apps. And
         | because GUI toolkits were very expensive to develop, there was
         | really only one or two games in town for that, the main one
         | being Win32. Only one tiny problem: Win32 API sucked hard. It
         | was designed in the 80s for C programmers and wasn't
         | particularly good even then. As a consequence a whole pile of
         | products and languages sprang up that tried to give developers
         | access to the large amount of functionality Microsoft offered,
         | without having to actually use their API. The Delphi VCL
         | (Visual Component Library) was such a tool and was a pretty
         | good fit, being as it was characterized by manual memory
         | management, tasteful OOP design and good C interop.
         | 
         | Delphi programs are split into files called "units". Each unit
         | has two sections labelled the interface and the implementation.
         | Types go into the interface, code in the implementation. It's a
         | bit like how C uses header files except more rigorous and
         | tightly enforced. Unlike C/C++ you can't (couldn't?) have
         | circular dependencies between units, which forced a very
         | hierarchical structure on programs.
         | 
         | The Delphi compiler was extremely fast, partly because it was a
         | single pass compiler and partly because it didn't do much/any
         | optimization. For desktop apps that spent most of their time
         | blocking on events that didn't matter, whereas fast iteration
         | speed did, and in this way Delphi carved out a loyal following
         | of developers who didn't want to deal with Microsoft's slow C++
         | toolchain and poorly designed APIs, nor the designed-for-
         | beginners Visual Basic product.
         | 
         | A big part of Delphi's appeal was the visual window designer. A
         | quasi-marketplace of components existed and when you installed
         | a new component, it would appear in the components tray that
         | was always visible at the top of the screen. Components could
         | be dropped onto UIs, have their properties be adjusted, be
         | connected together, event handlers could be filled out by
         | double clicking etc and they could be visual or non-visual.
         | Also, you have to understand that at this time components are
         | primarily distributed as binaries and sold by companies. Open
         | source was little known in the Windows ecosystem, so there was
         | no notion of dependency or package managers. To use a component
         | you bought it and installed it. Microsoft had a standard for
         | components called OCX and I can't remember what the Delphi
         | equivalent was.
         | 
         | Many Delphi apps connected directly to a SQL database engine
         | and issued queries as the logged in user, via something called
         | the Borland Database Engine. I never used it so can't say much
         | about this, but it's worth noting that this two-tier approach
         | had a lot of advantages and there may be good reasons to bring
         | it back! I'll be giving a talk on this idea at KotlinConf in
         | April. For example SQL injection is impossible by design when
         | your database knows who you are, because the DB engine is
         | enforcing the right privilege level on you. It also means you
         | don't have to think about REST, JSON, GraphQL and all the
         | plumbing that web apps require because the app can just issue
         | queries directly and bind the results straight into UI
         | controls. This is one reason why Delphi programmers tend to
         | feel their environment is highly productive.
         | 
         | It had quite a lot of downsides compared to modern development.
         | After the designer went to MS the platform entered a period of
         | decline. The language was good for its time but fell behind due
         | to lack of investment, the product was fundamentally Windows
         | only and an attempt to bring it to Linux (Kylix) was a
         | resource-sucking disaster. Borland renamed themselves to
         | Inprise which everyone hated, and spent lots of time and money
         | on esoteric enterprise features like CORBA. Meanwhile, like
         | Windows, they largely ignored the question of internet
         | distribution meaning that they started to be left behind as the
         | web took off (which elegantly solved the distribution problem,
         | at the cost of regressing in virtually every other department).
         | Borland tried to bring Delphi to web development but without
         | the VCL and GUI stack it lost a lot of the justification for
         | its existence, especially as Delphi's natural domain of
         | business apps really benefited from garbage collection which
         | Delphi didn't have.
        
       | L29Ah wrote:
       | https://hedgewars.org/ has a game engine is written in Pascal,
       | and it rocks!
        
       | grishka wrote:
       | I won't be surprised if Russian schools still teach Turbo Pascal
       | on computer science classes.
        
         | azangru wrote:
         | I think they've graduated to python now.
        
       | bratao wrote:
       | One of my favorite tool ever, the first thing I install in my dev
       | env is HeidiSQL (https://www.heidisql.com/) It is made using
       | Delphi
        
         | lewantmontreal wrote:
         | I have tried all sorts of Electron, Java and Web Postgres
         | clients but HeidiSQL, despite limited Postgres support, is just
         | way too usable in comparison. Maybe it speaks for the datatable
         | implementation of Delphi but I'm not sure.
        
           | Joeri wrote:
           | It may just be the raw performance. Delphi VCL programs are
           | very fast, because they're running native non-interpreted
           | right on top of the base windows api.
           | 
           | Delphi itself was also a very speedy IDE, at least back in
           | the borland and codegear days. Can't speak much to the
           | embarcadero era as that is when I switched fully to web dev.
        
       | wongarsu wrote:
       | I know of a manufacturer of industrial equipment (quality control
       | and process optimization on the factory floor) whos software is
       | written in Delphi. They don't need any web interfaces, and if you
       | want a WYSIG editor for GUI applications (in a language that can
       | easily talk to hardware) it's one of the best options.
        
       | Dylan13hewtt wrote:
       | [flagged]
        
       | m0guz wrote:
       | Turkish Ministry of Education has chosen Embarcadero's Delphi few
       | years ago for students in technical schools.
       | 
       | https://jonlennartaasenden.wordpress.com/2020/01/20/turkey-s...
        
       | QuadrupleA wrote:
       | One of the most popular DAWs (digital audio workstations), FL
       | Studio, is written in Delphi.
        
         | pier25 wrote:
         | Oh wow I had no idea.
         | 
         | https://www.embarcadero.com/case-study/image-line-software-c...
        
       | richardbarosky wrote:
       | Well, there's this posted by Embarcadero just today:
       | 
       | https://www.youtube.com/watch?v=l3nn3isshVg - When Delphi reaches
       | the Cloud!
       | 
       | Disclaimer: I'm not a Delphi programmer. This just popped up in
       | my YouTube feed.
        
       | vfclists wrote:
       | Delphi is the best developer tool out there for delivery of
       | functionality to end users.
       | 
       | My only problem is that the compile edit develop cycle doesn't
       | suit my "personal" needs and it doesn't have garbage collection
       | for search needs. You can't be hunting down unfreed memory when
       | you just want a quick and dirty utility.
        
         | jksmith wrote:
         | If you're ok with limiting to (mostly local) scopes, it's
         | fairly easy to write a general purpose mark/release then sugar
         | it up with macros in FPC/Lazarus.
        
       | jpm_sd wrote:
       | Popular ECAD tool Altium Designer was written in Delphi
       | originally, but I think they moved to C# a few years ago.
        
         | ale42 wrote:
         | The current version (Altium 23) is a mix of Delphi and .NET (I
         | guess C# but couldn't quickly find evidence). I don't have time
         | to try to exactly figure out what's used for what, but a quick
         | test shows that the main executable and dozens of DLLs of the
         | latest Altium version are compiled with Delphi 30.
        
       | Dylan13hewtt wrote:
       | [dead]
        
       | JohnTHaller wrote:
       | The PortableApps.com Platform's menu is written in Delphi. I'm
       | the only one actively working on it at present. I've been
       | debating transitioning it to Lazarus but have not had the time to
       | test that out in a while.
        
       | pshirshov wrote:
       | > So, i generally considered Pascal a dead language.
       | 
       | Essentially it's dead. Though, looking at all the people trying
       | to learn programming using dynamic languages with managed memory,
       | I really regret that there is no good low-level language
       | targeting learners as ubiquitous as Pascal was. I still advice
       | those who can't grasp basic concepts and data structures (like
       | reference, identity, passing by value, etc) to spend some time
       | with Pascal and some old school-level Pascal books. For some
       | reason that usually works better than K&R and C. I guess it's
       | just about the language being lot simpler and not enforcing
       | extensive pointer operations.
        
         | zozbot234 wrote:
         | > I really regret that there is no good low-level language
         | targeting learners as ubiquitous as Pascal was
         | 
         | Some people are betting that Rust will be that language - and
         | it probably can be a viable first programming language if all
         | you're writing is toy programs with trivial use of dynamic
         | memory, like you probably would when learning Pascal. It
         | certainly has better chances than C++.
        
           | jeroenhd wrote:
           | I love Rust, but its model and specifics would make it
           | difficult to learn how to write code in other languages.
           | 
           | For low-level code, I think Carbon may fill that niche in the
           | future. If it doesn't, C++ may be a good candidate once up-
           | to-date books have been written and compilers actually
           | support the modern spec. Classrooms/guides would need to move
           | away from the still-lingering "C++ is C with classes"
           | approach and use the standard library before that can be a
           | reality, but this book[0] by Bjarne Stroustrup himself
           | demonstrates the future C++ _could_ have if all the modern
           | language features become usable.
           | 
           | In business, C++ will still be the domain of ancient
           | clusterfucks compiled by MSVC++ 6 in many areas, similar to
           | how most Java code is still built around Java 8 because that
           | was the most recent stable version for many projects'
           | lifecycle (and Oracle's decision to only ship JRE 8 to
           | consumers doesn't help) and how .NET 4 is still taught in
           | schools because the new and scary dotnet tool doesn't map
           | 1-to-1 with the old way of working. I can't imagine
           | microcontroller toolkits supporting a modern version of _any_
           | language in the first place.
           | 
           | However, if more people would learn modern C++ (or a
           | replacement, like Carbon), I think this class of programming
           | languages can have the same growth and hype Rust has enjoyed
           | for the past years.
           | 
           | I'm keeping my eye on Carbon and Zig. Google's influence has
           | managed to push Go to the forefront despite its many quirks,
           | and Zig seems to be focused on doing "C, but right" rather
           | than "C++, but right" which so far is looking pretty
           | promising.
           | 
           | It's also fun to see Jakt[1] being developed in real time; I
           | don't think it's a language that will be useful for
           | production software any time soon, but on the other hand it's
           | a language that actually produces binaries reliably (unlike
           | pre-alpha Carbon or pre-release Zig, the latter exposing many
           | problems after switching to a self-hosted compiler).
           | 
           | [0]: https://www.stroustrup.com/tour3.html
           | 
           | [1]: https://github.com/SerenityOS/jakt
        
           | pshirshov wrote:
           | I can't imagine how Rust may be the perfect low-level
           | language for beginners given its unusual typesystem which
           | comes with significant mental overhead. Really, I have no
           | idea how to explain 7 year old kids how to deal with Rust. It
           | works perfectly with Pascal though.
        
             | zozbot234 wrote:
             | I don't think anyone has seriously _tried_ to teach
             | schoolkids to code in Rust just yet. But the way you 'd do
             | it would be to treat it as something close to a pure
             | functional language. .clone() all the things and use Cell<>
             | for the hopefully rare case where you really need shared
             | mutability somewhere. (Even RefCell<> is arguably a step-up
             | in complexity over Cell<>.)
        
               | pshirshov wrote:
               | Essentially your proposal sounds like you would have to
               | invent some kind of convention-defined language on top of
               | Rust.
               | 
               | The beauty of old Pascal was its compact feature set
               | which is really easy to explain.
        
         | syntheweave wrote:
         | I actually went with Pascal(FPC) for my own self-learning in
         | college, in the 2000's, even though I had some classroom
         | exposure to C.
         | 
         | Pascal is just a little bit more polished in its syntax around
         | data handling. The pass-by-reference syntax reduces reliance on
         | pointers, and the Borland pointer syntax is sensible(reference
         | vs dereference is indicated by ^ at left vs right) and helps to
         | position pointers as an occasional tool rather than the essence
         | of your program. Trying to teach C syntax involves a mandatory
         | "OK kid, here is how we actually decipher what the * means here
         | and why your program crashes when you try to dereference it"
         | period. We know that it's bad - because everyone, at every
         | level of skill, messes it up occasionally, and there's an
         | inherent tendency in C to do a heap alloc wherever your
         | algorithm needs it and then immediately manipulate it with
         | pointers, instead of thinking through a way of designing it
         | with bounded buffers. Likewise := is a better assignment
         | operator than C =, because you might accidentally leave out the
         | : and compare, but you'll never accidentally add a : and
         | assign.
         | 
         | The downside of Pascal syntax relative to C is mostly in
         | control flow, block structure, declarations being more verbose
         | - it's something you can get used to, but it's that little bit
         | harder to jump in and start hacking out something. With the
         | extensions currently in FPC, I'd still prefer using it over C,
         | though. It's a mature development environment, mostly hamstrung
         | by an ecosystem that has fallen behind in favor of newer
         | things.
        
         | anta40 wrote:
         | I think saying "essentialy it's dead" is too harsh.
         | 
         | Delphi and FPC/Lazarus are still under active development. Some
         | hardcore Delphi-ers from the 2000s I know are still using it,
         | either for maintaining in-house apps or doing side jobs.
         | 
         | If you are looking for jobs, I agree Go/Java/Kotlin/C#/PHP
         | yield more search result, though :)
        
         | wilsynet wrote:
         | I learned how to first program in the early 1990s with Pascal.
         | It never really clicked with me, despite reading multiple
         | different beginner books, and I gave up, figured programming
         | wasn't for me.
         | 
         | Years later I was encouraged to read "The C Programming
         | Language", and it was revelation. And so here I am many years
         | later with a long and successful career in tech.
         | 
         | C was great in the sense that K&R said hey this is a string,
         | and this is strcpy, and oh by the way, this is how you write
         | strcpy.
        
       | joejoesvk wrote:
       | desktop simulation software...delphi anf directX
        
       | skilled wrote:
       | I think/know Pascal is still being taught at a lot of schools in
       | Europe. My guess is that in small villages/cities/suburbs - the
       | only people who can teach programming concepts and principles go
       | way back as the new generation has moved on.
        
       | throwawaycr4zy wrote:
       | REMObjects has a very modern Pascal dialect named Oxygene.
       | https://www.remobjects.com/elements/oxygene/
        
       | lurchedsawyer wrote:
       | TransportForLondon are currently looking for Delphi developers...
        
         | andai wrote:
         | That's interesting. Must be hard to hire for nowadays. Then
         | again, my friend says at least one government is still using
         | COBOL!
        
           | RobotToaster wrote:
           | COBOL will outlive all of us.
        
           | foobiekr wrote:
           | I have a coworker who, when he got out of school in the 90s,
           | got hired to write COBOL. There's a ton of COBOL out there,
           | and why not? As much as "waterfall" is a fiction, high-spec,
           | super-detailed-spec projects actually do have some advantages
           | as they are usually well thought out. That is where COBOL
           | played, and why those apps have run since the 70s.
        
             | Aloha wrote:
             | Sometimes the entire specification really does exist before
             | you start. Certain kinds of software applications have not
             | had substantive new functionality in decades, so everyone
             | knows what a complete implementation of it looks like.
        
           | vfclists wrote:
           | Where is the link?
        
             | pledg wrote:
             | https://www.linkedin.com/jobs/view/senior-application-
             | engine...
             | 
             | PS60k seems a little low for a "senior" position in central
             | London. Although you do get final salary pension, slightly
             | above average holidays (30 plus bank holidays), and free
             | TFL travel.
        
             | [deleted]
        
       | nopakos wrote:
       | Kind of trapped in a large project. Started in Turbo Pascal in
       | 1994, ported to Delphi, and we're still working on it. Maybe will
       | finally have to port it to something else if WASM support is not
       | added soon. I like the language because it's readable, yet as
       | powerful and close to the metal as C++. Not so happy with the
       | pricing model though.
        
       | dividuum wrote:
       | I believe the Miniatur Wunderland in Hamburg uses Delphi to
       | automate their 1000s of model trains and hundreds of thousands of
       | lights.
        
         | netsharc wrote:
         | I wanted to say this too: https://www.embarcadero.com/case-
         | study/miniatur-wunderland-c...
         | 
         | The software on-screen: https://youtu.be/kySAQvU51CY?t=137 . It
         | controls lights, cars, and recently they had the idea of using
         | "AI" to actually let 20 mini F1 cars race each other on a
         | magnetic track, with each car using a CPU core of a 32-core
         | machine: https://youtu.be/3ujaGUFfgC0?t=187
        
       | eraofballoon wrote:
       | TeX82 is written in Pascal. I study it a lot because Knuth wrote
       | it but other than that I have not really touched it. It is a
       | fairly nice language though. Albeit dated.
        
       | FpUser wrote:
       | I use FreePascal/Lazarus and Delphi for my desktop products.
       | Delphi is expensive but since I am very old client I get away
       | with discount for my pro version upgrades.
       | 
       | In my opinion there is nothing out there that matches simplicity,
       | productivity and power of Delphi when it comes to desktop. My
       | deployments are signed single exe that can be copied anywhere
       | they just run. And are super snappy.
       | 
       | My main languages outside desktop are C++, JS and whole bunch of
       | others when needed.
        
       | pengo wrote:
       | We still use Object Pascal (in the freeware Lazarus IDE) for dev
       | utilities. Mostly they're native desktop apps, but some interface
       | with cloud services.
        
       | c0l0 wrote:
       | I write a wee bit of custom (GUI/desktop) software, both for
       | personal use and for use at my employer, using
       | FreePascal/Lazarus. Despite the somewhat clunky syntax - I have
       | more of a UNIX/Shell/C and Python background - I feel very
       | productive with it. I've come to consider knowing to use it (in
       | the proper context and when it's the right tool/language) a
       | hidden superpower ;)
        
       | tdsanchez wrote:
       | Pascal kinda lives on in Oracle's PLSQL and in Postgres.
       | 
       | I was exposed to Pascal in high school and college in the late
       | 80s/early 90s.
       | 
       | I've never used it professionally except for when I supported an
       | Oracle DB backend in the 00s.
        
       | fenesiistvan wrote:
       | What should be the problem with Pascal? I have the impression
       | that here on HN most post are about latest/hyped tools, but the
       | "real" industry is done with boring/old fashionated tools. Your
       | post just confirms my toughs since you are using terms like
       | "cloud-native" which sounds like marketing boolshit to me, but
       | such terms are common here on HN. (And I am not against HN in
       | general, it is my favorite website, but I learned a long time ago
       | that I should treat it with a bit of salt regarding hyped tools
       | and technologies)
        
         | [deleted]
        
         | 411111111111111 wrote:
         | Well, if your argument was true then none would use
         | pascal/Delphi, as they'd only use Java and PHP.
         | 
         | Fyi, cloud native means that your application is written to
         | utilize cloud services such as S3, dynamodb, dynamic scaling
         | etc. It often comes with vendor lock-in and is not necessarily
         | the best choice, but calling it a pure marketing term sounds a
         | little ignorant
        
         | ChrisMarshallNY wrote:
         | Reminds me of this old conversation:
         | https://news.ycombinator.com/item?id=19877916
        
         | PaulHoule wrote:
         | ISO Pascal from the 1980s was popular as a teaching language
         | but it was missing many features needed for systems
         | programming. In my high school they used Pascal for
         | introductory programming classes on a Digital VAX-11/730. The
         | limitations would leave many people taking a class like that
         | who were aware of other programming languages thinking it was a
         | toy language.
         | 
         | Apple came out with Object Pascal in the early 1980s which was
         | the official programming language for the Lisa and original
         | Mac. Borland came out with Turbo Pascal that went through
         | numerous iterations and by the end of the 1980s I thought it
         | was much better than C for the IBM PC but I switched to C in
         | college because it was portable and would run on 32-bit Sun
         | workstations.
         | 
         | By grad school I had jumped into Linux with both feet and had
         | given up on DOS and Windows, around that point Borland came out
         | with Delphi which was basically "Object Pascal for Windows" and
         | was a direct competitor for Microsoft's Visual Basic intended
         | for developing GUI applications quickly.
         | 
         | Today there are still people who remember Delphi fondly and
         | there are quite a few Delphi clones out there.
        
           | mustntmumble wrote:
           | I'm somewhat bemused that your school ran the toy ISO Pascal
           | on a VAX, because VMS came with its own version of Pascal!
           | VAX/VMS Pascal had some cool language extensions that made it
           | extremely suited and extremely popular for VAX/VMS Systems
           | Programming! VAX Pascal supported native VMS strings
           | intrinsically whereas in VAX C you had to use cumbersome
           | string descriptors to pass strings from C to the VAX/VMS RTL
           | or Starlet (System Libraries). Ah happy memories, I miss
           | VAX/VMS...
        
             | PaulHoule wrote:
             | It might have been the full DEC pascal but we were taught
             | to write standard Pascal.
        
         | AnimalMuppet wrote:
         | Was "boolshit" deliberate, or just a typo? For marketing hype
         | about computer programming languages, it seems like the
         | _perfect_ term. So, whether deliberate or accidental, well
         | done!
        
           | kevin_thibedeau wrote:
           | I'd consider an accurate description of the precedence for
           | the boolean operators. They're treated as equivalent to their
           | arithmetic cognates (~ == not, * == and, + == or) forcing you
           | to use excessive parentheses to separate terms. Notably, this
           | is something that Wirthian styled Ada didn't copy.
        
           | dylan604 wrote:
           | wow, my brain autocorrected that typo when I read it. maybe
           | because i agree with the sentiment. i thought you were the
           | weird one until i went back to re-read it. but now that you
           | pointed it out, i do like it and think i'm going to be adding
           | it to my vocabulary
        
       | pjmlp wrote:
       | Yes, Delphi has some following in Germany, with presence on
       | programming magazines and an yearly conference.
       | 
       | https://entwickler-konferenz.de/de/
       | 
       | This Belgian company uses it for robot automation in life
       | science.
       | 
       | https://www.lab-services.nl/en/home
        
       | turtleyacht wrote:
       | Reminds me of a few things: Kernighan and Plauger's _Software
       | Tools in Pascal_ , Lazarus Pascal, and Embarcadero's Delphi,
       | which they say is "Modern Object Pascal."
       | 
       | If your dependencies can be downloaded and built in a Docker
       | container, for example, it can certainly run in the cloud.
       | 
       | [1] https://www.embarcadero.com/products/rad-
       | studio/features/del...
        
       | bluGill wrote:
       | My understanding is Pascal had an large influence in Ada, which
       | is still used and has some interesting features. I've never
       | really done either, but i keep meaning to.
        
         | yodsanklai wrote:
         | My school used Ada to teach programming before switching to
         | Java which was the new thing. At that time, it was a nice
         | alternative to C/C++ for learning. Overall, it's quite a simple
         | language. Type safe, good module system, generics... Although I
         | don't know if there's much to learn from Ada nowadays. Also, I
         | have no idea what the tooling is like nowadays: IDE support,
         | package management, linters and so on...
        
       | pluc wrote:
       | The people who still use Pascal make so much money using Pascal
       | that this question is literally above all of our paygrades.
        
         | bdcravens wrote:
         | True of most older languages that have fallen out of favor.
        
           | eatonphil wrote:
           | This is a mostly inaccurate trope from every time I've gone
           | looking. If you look at the median and spread of salaries for
           | Cobol developers or mainframes or Fortran or whatnot, it is
           | way below the medians and spread for salaries of frontend and
           | backend developers.
           | 
           | Now possibly there are non-public markets where you can hire
           | devs at crazy salaries but us not being able to find them
           | also indicates the relative scarcity.
           | 
           | So overall no I don't think finding work in old-school tech
           | will pay better or even have much better work-life balance.
        
           | pluc wrote:
           | And it's not obscure systems powering typewriters in a dimly
           | lit basement! We're talking banks, grocery stores,
           | warehouses. Anything that was made 40+ years ago and was
           | never re-engineered either because they couldn't or wouldn't.
           | The price to upgrade is higher than the price to maintain so
           | why bother? Not everyone cares about the latest trends.
           | 
           | Edit: I said 20+ years initially.. but that's 2003 now :( So
           | 20+ years from 20 years ago.
        
       | 7thaccount wrote:
       | One of the major vendors of a certain software my industry uses
       | has their product in Delphi. I'd say they have 40% market share
       | and a pretty cool product. It was one of the first in my industry
       | to have advanced GUI functionality, but it's starting to look a
       | bit dated unfortunately.
        
       | eimrine wrote:
       | Afaik, schoolchildren in Ukraine still use to learn programming
       | in late school years with Pascal.
        
         | theduder99 wrote:
         | and Moldova
        
         | Raed667 wrote:
         | Tunisia as well, we learned basic algorithms using Turbo Pascal
        
           | filoleg wrote:
           | Echoing the same from Russia circa 2006, had the first
           | "informatics" (aka intro to CS) class in 6th grade taught in
           | Turbo Pascal. Sadly, learned almost nothing in that class, as
           | the teacher had about as much understanding and interest in
           | the material as the students (aka near none).
           | 
           | Luckily, many years later in a US high school, I rediscovered
           | it all from scratch (programming, not Turbo Pascal lol), and
           | things started making way more sense. Looking back, it was
           | not the fault of Turbo Pascal at all for how my first
           | experience with it went, and i find it a pretty fascinating
           | language.
        
             | Raed667 wrote:
             | I was also very disappointed to learn that my teachers
             | didn't care for or wanted to talk about Python, Java or
             | anything that wasn't in the curriculum. They didn't have
             | that "spark" that I found again in university.
             | 
             | All they cared about was the material they were supposed to
             | teach (Turbo Pascal, Dreamwaver and Microsoft Access) and
             | it almost turned me off from programming.
        
         | VladimirGolovin wrote:
         | In Russia as well.
        
       | dukoid wrote:
       | Does Advent of Code count?
       | 
       | Jorg's AoC 2022 solutions in Pascal for CP/M running on a
       | Spectrum Next with nice ASCII animations:
       | 
       | https://www.youtube.com/watch?v=eg7r_6IrWmo&list=PLcjDDXgGeS...
       | 
       | Source code: https://github.com/pleumann/aoc22
        
       | magicalhippo wrote:
       | Our main product is in Delphi, a B2B CRUD-ish application, with a
       | 60% market share in our niche. We're crucial to daily operations
       | of many local branches of well-known global businesses.
       | 
       | These days it's obvious the years of lost momentum is taking a
       | toll. The language hasn't evolved much and is showing its age in
       | many areas. The IDE is far behind Visual Studio in terms of code
       | completion and similar help. It's also been difficult hiring
       | developers.
       | 
       | We've looked at moving to the web, but none of the front-end
       | frameworks and tools we've seen so far get anywhere close to the
       | ease of Delphi when it comes to making decent looking user
       | interfaces with nontrivial functionality that doesn't silently
       | break in random weird ways from one day to the next.
       | 
       | Also, if you want something in between a full CRM and "assembly
       | level" database access, Delphi has some powerful libraries and
       | components.
       | 
       | To give some perspective, we've got hundreds of businesses with
       | many thousands of users, many large modules which constantly
       | evolve, we have tons of custom integrations per customer,
       | including custom data entry windows/screens. The largest customer
       | has 25 integrations, 20 of them entirely custom including non-
       | trivial new user interfaces, and got onboarded in less than a
       | year from signing the contract. This with a team of 7 devs total
       | and zero hired manpower. I'm not sure we could have gotten this
       | far with such few developers with any other tool/platform.
       | 
       | But as I said, things are changing. So far we're moving the
       | "backend" stuff to .Net/C#. Via RPC and message queues we can
       | implement pieces in .Net while keeping the frontend in Delphi for
       | now. We'll probably move the front end at some point once we find
       | something suitable.
        
         | s1k3s wrote:
         | To download Delphi "Community Edition" I need to provide: name,
         | email address, country, phone number and a company name. I can
         | also use it only if I agree with their terms (understandable-
         | ish, every license is like this). So how can anyone expect
         | people to use it when even if you just want to try it out you
         | have to register somewhere.
        
           | magicalhippo wrote:
           | Yeah that's another side, Delphi's never been good at entry-
           | level stuff. Back in the days the only way to get a cheap
           | copy was to be a student. Now there's the "Community Edition"
           | but as you say, compared to other options it's pretty high-
           | friction.
           | 
           | This combined with the years of subpar evolution due to poor
           | management certainly did not help Delphi.
        
         | EFreethought wrote:
         | Not a Delphi/Pascal person, but: Did you look at Lazarus and
         | Free Pascal? Why not go with them over .NET? Since Delphi and
         | FP are both variants of Pascal, it seems like it would be
         | easier.
        
           | Aloha wrote:
           | I commented in a parallel comment, but likely for the same
           | reason we are - Developer pool for .NET is much larger.
        
           | magicalhippo wrote:
           | The issue isn't licensing cost, but developer productivity
           | and being able to hire people.
           | 
           | Like I said, we've struggled big-time to fill our open dev
           | positions. Also, the .Net community is just that much bigger,
           | and the tools get more attention.
           | 
           | For example, a customer recently required us to fetch
           | messages from Azure Service Bus to get an ID for a file in
           | Azure Blob Storage. Sure the REST calls for the Azure API's
           | could have been written fairly easily, but they used that
           | pre-shared key authorization scheme which required signing
           | certain HTTP headers[1]. None of our libraries easily
           | supported integrating that, as they all generated those
           | headers on the fly while making the HTTP call.
           | 
           | In .Net there was already official libraries for this and it
           | took me a couple of hours to write the integration, including
           | testing. Even without the authorization blocker, it'd taken
           | way more time than that to implement the necessary REST calls
           | and properly test them in either Delphi or Free Pascal.
           | 
           | In another example, we've adding JSON support for our
           | "public" API, in addition to our XML. We're quite used to
           | customers feeding us with crap data, so validating against
           | schema on the way in is a must to keep support requests down.
           | In .Net there was already a nice JSON Schema library waiting
           | for us[2], so only took me a couple of minutes to integrate
           | that. The only Delphi/FPC library I could find was years old
           | and didn't support the JSON Schema version we required.
           | 
           | [1]: https://learn.microsoft.com/en-
           | us/rest/api/storageservices/a...
           | 
           | [2]: https://www.newtonsoft.com/jsonschema
        
         | Aloha wrote:
         | Ya, we're in a similar boat - lots of custom versions for
         | customers, we're a large payer in our market too however.
         | 
         | We ship our application as a binary with some premade Delphi
         | form files and a tool we wrote to build DFM files for the
         | customer specific application that limits access to the
         | functions and objects built into the application. I'm part of
         | the group that consumes the application as built and develops
         | customer implementations.
         | 
         | We're slowly transitioning from Delphi to C#, because the
         | language is creaky, and mostly, its become impossible to hire
         | dev's and when we do its months before they can be productive
         | (but boy are they once they are).
         | 
         | I think the move away from Delphi is going to hurt a bunch in
         | the short term, but will probably get us long term benefits.
         | 
         | For me the biggest issue I'm dealing with, is Windows is a
         | treadmill of changes, and its hard-to-impossible to keep up
         | with it.
        
         | cynwoody wrote:
         | > _But as I said, things are changing. So far we 're moving the
         | "backend" stuff to .Net/C#._
         | 
         | Delphi and C# share a chief architect, Anders Hejlsberg, who
         | left Borland for Microsoft in 1996[0].
         | 
         | [0]https://en.wikipedia.org/wiki/Anders_Hejlsberg
        
         | magicalhippo wrote:
         | > CRM
         | 
         | ORM of course, not sure what my brain was doing at that moment.
        
       | dgudkov wrote:
       | Inno Setup uses Pascal for scripted installations and is rather
       | popular.
        
       | sllabres wrote:
       | https://wiki.freepascal.org/Projects_using_Free_Pascal
       | 
       | https://delphi.fandom.com/wiki/Good_Quality_Applications_Bui...
       | 
       | https://lazarusccr.github.io/apps/
        
       | sema4hacker wrote:
       | My programming background started with FORTRAN and WATFIV and
       | PL/C in high school, then mostly ALGOL W in college, then back to
       | FORTRAN and Pick BASIC business data processing in the real
       | world. I finally went out on my own and had a small software
       | company from 1982 until I retired in 2017. I converted our
       | primary product from Mac Pascal to Delphi 1 for Windows in 1995,
       | eventually upgrading to Delphi 6 in 2001, and never went beyond
       | that version.
       | 
       | Besides our product, all of our in-house order entry and shipping
       | systems were created with Delphi.
       | 
       | Last year I decided to come out of retirement and start a retail
       | business, currently in stealth mode, but still using Delphi 6 for
       | our tech infrastructure. I wrote a multiple-station data entry
       | system for capturing/maintaining our inventory using a SQLite
       | centralized server. I wrote an ISAPI DLL to drive our Javascript-
       | free package-free web site which is very fast and has quite nice
       | search capabilities. (Yes, a 32-bit DLL can generate HTML/CSS
       | quite adequate for a modern-looking website.)
       | 
       | After using it for over 20 years, it is so quick and easy for me
       | to create just about anything I need with Delphi, that the few
       | times I've considered using other tools it quickly became
       | apparent it would just take too long to get a handle on things
       | and the ROI simply wasn't there.
       | 
       | An example of that was when last year I stumbled upon a Python
       | program that did some sophisticated processing I could use, but
       | dealing with that environment turned out to be a time-sucking
       | nightmare. Too much of modern "programming" has turned into
       | trying to mix and match and glue together packages instead of
       | actually creating code. So, I'm sticking to an old-school system
       | that lets me be creative and productive.
        
       | thg wrote:
       | We almost exclusively use Lazarus/FPC at work. Most of our
       | software is PC applications for controlling / communicating with
       | industrial machinery (CIJ printers, cable cutters, ..), so we
       | don't need the latest & greatest stuff.. I'll be glad for the day
       | when I never have to fiddle around with RS232/485 again..
        
       | Scubabear68 wrote:
       | I have seen Delphi in some very established industries where
       | there was never a concern about it for a very long time (and now
       | there is a lot of nervousness about what to do about it).
       | 
       | Amazingly Embarcadero still sells and markets it!
        
       | omgwtfusb wrote:
       | Kinesis keyboards config tools are written in Pascal using
       | Lazarus IDE - I haven't tried compiling it myself but they run
       | just fine on macOS and Wine on Linux
       | 
       | https://github.com/KinesisCorporation/SmartSetApps
        
       | Svip wrote:
       | I worked with Pascal for 10 years, through the majority of the
       | 2010s. I think my biggest complaint about the language was the
       | ecosystem. Units for modern protocols that would easily available
       | in other languages, including C and C++, were hard to come by
       | with Pascal/Object Pascal. And most of those that exists were
       | often incomplete, thus requiring additional modification to make
       | workable.
       | 
       | This made projects that required any sort of advancement in
       | protocol - even just for a prototype - scale quickly, and most of
       | them we abandoned before we got there, unless the old tech (in
       | our case, mostly self-designed) was proving too problematic.
       | 
       | Too a lesser extend is the age of Pascal. But I would apply this
       | critique to C and C++ as well. Hell, even Java and C# are showing
       | their age these days. There are just some quirks in Pascal, one
       | needs to remember, like 1-indexed strings (I know they added an
       | option for 0-indexed strings later) and that you can -
       | theoretically - make arrays any-indexed. But all languages -
       | including far younger ones - have their own quirks.
        
       | Apocryphon wrote:
       | You can use Delphi to build mobile apps, which blows my mind.
       | Must be a Codename One sort of enterprisy cross-platform
       | solution.
       | 
       | https://www.embarcadero.com/products/delphi/features/mobile
        
       | adamzochowski wrote:
       | Total Commander was in Delphi, but is now compiled with FPC. This
       | is best file manager for windows. https://www.ghisler.com/
       | 
       | I believe Zoom Player too is a pascal beast. Before VLC became
       | ubiquitous and playing all formats, Zoom Player was one of the
       | top windows contenders. Since then Zoom Player grown to be also
       | Zoom Commander, which is a player for meant for restaurants and
       | venues, with ability to split video across multiple screens, with
       | multiple overlays. https://www.inmatrix.com/
        
         | zerr wrote:
         | I recall Lazarus/FPC was tried but the project switched back to
         | Delphi.
        
           | MikusR wrote:
           | Total Commander is Lazarus/FPC
        
         | smartmic wrote:
         | I prefer DoubleCommander: https://doublecmd.sourceforge.io/
         | 
         | It is a free, cross-platform alternative, also written in
         | Pascal and (IMHO) has surpassed TotalCommander in many ways.
        
       | nicwilson wrote:
       | The least terrible of the IEC Programmable Logic Controller
       | languages is effectively a pascal.
        
       | davomir0007 wrote:
       | [flagged]
        
       | app4soft wrote:
       | An extended fork of _FREE!ship_ [0] (abandoned since 2007),
       | _FREE!ship Plus_ [1] was ported from Delphi to Lazarus/FPC & Qt
       | since 2015 and actively maintained till October 2020.[2,3]
       | 
       | Author of original opensource _FREE!ship_ switched to develop its
       | proprietary variant, _DELFTship_ - it still actively
       | maintained.[4]
       | 
       | [0] https://sourceforge.net/projects/freeship/
       | 
       | [1]
       | http://web.archive.org/web/20160831005653/http://www.hydrons...
       | 
       | [2] https://sourceforge.net/projects/freeship-plus-in-lazarus/
       | 
       | [3] https://github.com/markmal/freeship-plus-in-lazarus
       | 
       | [4] https://www.boatdesign.net/threads/free-ship-continues-as-
       | de...
        
       ___________________________________________________________________
       (page generated 2023-02-26 23:01 UTC)