Turkey buys Delphi licenses for an estimated one million students
jonlennartaasenden.wordpress.com
jonlennartaasenden.wordpress.com
I then found out that they were being taught to use Borland Turbo C.
I suspect the case for this is similar: Some person who once upon a time learnt to program and then never practiced nor developed their skills somehow got a job teaching programming, and is now trying to apply the ancient tools they were taught somewhere around the time when some fish decided to walk on land because its all they know.
Whenever you wanted to know syntax of some command, you print this command, press ctrl-f1 and is presented with docs, complete with a working example. It was insanely great. Remember, stack overflow didn't exist then.
Infinite loop: see Loop, infinite.
Loop, infinite: see Infinite loop.
Correction: Rust's help and documentation is HTML-based, and getting a local, automatically updated copy is trivial.
> even "local" docs launch in a web browser
Uh, so what? Can you name a better format for programming language documentation that's also ubiquitously supported?
Maybe you mean Rust's documentation is rendered to HTML. In which case, sure, but so what? Good docs can be rendered to non-HTML formats too, typically for IDEs to display quickly without needing to load a full browser.
It's one of the features I miss most as I code Rust, and the lack is very detrimental to the coding experience, as pulling up a browser is a massive context switch.
Info format. It's supported by Emacs, and Emacs is the most ubiquitous of IDE's.
"Never trust a compiler that doesn't fit on a single floppy"
I'm coining that second expression right here on Hacker News, today, 1/22/2020!
I'm fairly certain no one has said it prior...
But if they have, then my humble apologies, and in such case I'm un-coining it... <g>
In a time before the internet, it used to be that books, and occasionally magazines, were the initial entry points to understanding software, hardware and electronics. Then the BBS came along, these secret islands of knowledge and trade.
I learned Pascal and assembly on Turbo Pascal with trial-and-error and lots of context-sensitive help. These days, development is mostly fragmented and half-working. Progress is neither linear, increasing nor assured, and much is lost, reinvented not necessarily as well and lost again.
Also, eventually coding will decline or bifurcate more because general AI will allow non-programmers to ask a machine to do Star Trek-like self-programming. Essentially all office jobs are vulnerable to elimination as mechanical machine operators.
> Progress is neither linear, increasing nor assured, and much is lost, reinvented not necessarily as well and lost again.
The big difference is that we are now networked. The target MSDOS environment was not a moving target and had no security considerations. The world is very different now; we do so much programming in the browser because it's the one single cross-platform zero-friction environment we have. But those reasons also make it a battleground between platform monopolists.
There is also so much more software. Part of the problem that Stackoverflow solves is dealing with this. You can't be an expert on everything, there isn't enough time and it moves too fast. So you need a quick solution to incidental problems so you can get back to the "core" problem.
(credentials: the code I wrote at age sixteen for doing 3D rendering https://github.com/pjc50/ancient-3d-for-turboc )
Affordable C compilers (for a teenager at least) were not really a thing at the time (IIRC, even the DOS stuff, if you owned such a machine which I did not, still cost a couple hundred dollars around 1989-90-ish). I didn't manage to get a C compiler until the mid-90s when I picked up a copy of Turbo C for DOS, but I still think I paid $100 for the privilege.
> zero-friction environment
Giggle.
Maybe I'm just old, but I'm probably going to retire, and AI is not going to replace any programmers.
From what I see, the quality of the software in Corporate America reassures me that programmers will have jobs for many decades to come.
We aren’t nearly as close as you suggest do the level of code generation that would replace the bottom quarter of the labor pool even, but if that day ever comes I believe it will be really profitable for the top 20-30%.
'Eventually' is likely to be a very, very long time. I doubt we'll have self-programming systems like that even in my children's lifetime. It will likely take AGI to do it. There's the classic tale of programmers back in the 90s quiting their jobs because they thought Visual Basic would let non-technical bureaucrats write their own software, so there would be no need for specialist software engineers anymore.
One of the world's top self driving car engineers reckons we might never get Level 5.
I'm not an AI denier. Eventually we will get AGI, I think it's inevitable. It's just that the time horizon is so far off it's not really worth worrying about. We don't even have a clue how to go about designing it's general operational parameters or architecture yet.
I have some minor-level experience with self-driving car software, algorithms, etc. The majority of this is from various MOOCs I have participated in over the years, as well as research papers, books, and other things I have read and consumed. In short, I am not an expert, but I am not unfamiliar with the technology, either.
I personally think we'll never see actual widespread usage of self-driving vehicles outside of a very few narrow and carefully controlled (and regulated) cases. At least, I suspect, within my lifetime (which honestly, I'll be lucky for another 30 years or so).
My reasoning is that people will only trust perfection when it comes to riding in a self-driving vehicle. They will only be willing to use one if they can be assured that it will Never Crash, or be crashed into. They have no problem driving a car themselves, or being surrounded by other people driving cars. They have no problem with those crashing and even killing people - maybe even themselves (though they tell themselves fairy tales of it-will-never-happen-to-me to soothe over the reality). But introduce a machine into the equation...
...and that machine has to be Perfect. It cannot make any mistakes. It must avoid issues and be Safe 100% of the time, no exceptions.
In other words, people want the impossible from a machine, but will give utmost allowances to themselves and others as "humans".
I think a lot of this has to do with assignment of blame. When they crash or are crashed into - there is someone to assign blame to; themselves, the other driver, etc. Someone they can yell at, figuratively or literally.
A self-driving car? No one to yell at. No one to assign blame. Nothing that will feel bad for its error or failure to avoid something.
People can't handle that. They don't want a self-driving vehicle that has a safety factor of say, "seven 9s" - it has to be 100% safe or nothing. Because even if it makes a mistake only once out of a million miles of driving, that is still not safe enough. They want the unobtainable - a perfect machine, a machine that will never fail. Nothing like that can or will ever exist (basic laws of thermodynamics prevent it, for one thing).
Even though they themselves, or even the most professional of professional drivers - can't even come close to approaching this level. It both madness, and understandable at the same time.
From what I've seen I think your model of human behavior is flawed. Aircraft have been mostly fly-by-wire for decades and software flaws have led to some crashes (most recently those of the 737 Max), but that hasn't stopped people from flying in planes.
People have already been killed by self-driving cars, but that hasn't stopped the testing programs. Tesla automation (though far from full self-driving) has led to a number of fatal accidents yet people still buy Tesla's and I haven't heard of any public outcry to ban them from the roads.
I too am skeptical that we'll be seeing full self-driving cars anytime soon, but not for the reason you give.
I think the real issue is that AI-like technology has a 90-10 problem. It's relatively easy to get to 90% of human level performance but that last 10% is much much harder - unpredictably harder. Unfortunately self-driving cars are an area where 90% isn't good enough, even 99% isn't good enough. You probably need to get to something like 5 or 6 9's to be acceptable for broad general use and no AI-like technology has yet gotten anywhere close to that.
EDIT: I didn't mean to imply that the 737 Max is fly-by-wire, but the MCAS system that caused the crashes is a comparable technology.
That leaves more time for the interesting problems. I think that makes programmers generally smarter than before. They start from a higher base and can climb more quickly.
Also, you’re overestimating the potential trajectory of current approaches to AI.
> coding will decline or bifurcate more because general AI will allow non-programmers to ask a machine
I was expecting this development with the rise of React since at least the visualization part has become completely declarative. It's no rocket science to automatically transform that, in fact being an XML dialect there are a lot of tools available for this. But still, even in 2020 people still make money with writing HTML/CSS either plain or within a CMS.
In fact even a reverse development happened in some regard. In the 90s it was quite common for people to write CRUD apps running in Access, FoxPro etc. These tools - like Delphi which might be closest to that - practically disappeared.
The analytical load is still there and cannot be abstracted away. The decline of Access etc. happened because many aspects couldn't be mapped. Not to speak of all the nitty gritty details needed to make applications run safely and maintainable. There's still a very long road ahead to automatize all that, especially in a way that it consumes only a reasonable amount of CPU, memory and storage...
I don't think SO has dumbed down people. It's just the average level has tanked because of influx of people in tech. In 1980s average computer person was highly skilled, educated and intelligent, because even to get access to even the simplest computer required a solid dedication and investment. Now, tech is ubiquitous, easily accessible, and lots of people with most different backgrounds jump in. You'd be amazed how many 'developers' fail to solve FizzBuzz test. We actually DO test applicants with it, and results are extremely appalling. I am unable to understand how a person who calls himself a developer and has experience can fail this, but I have learned to accept this as an observed phenomenon.
My frustrations as HN comments:
* Selective bias in candidate selection - https://news.ycombinator.com/item?id=22098101
* Low productivity environments - https://news.ycombinator.com/item?id=21965539
* False equivalence - https://news.ycombinator.com/item?id=21904199
* There are only 2 APIs for working in the browser and yet most developers can't figure it out to save their careers - https://news.ycombinator.com/item?id=21849398
* Invented Here stupidity - https://news.ycombinator.com/item?id=21417450
* The DOM is a 20 year old standard that is the primary interface to any markup language and the primary interface when working in the browser, yet it is still somehow an arcane mystery of lost knowledge - https://news.ycombinator.com/item?id=21069571
* More about hiring bias - https://news.ycombinator.com/item?id=21015495
* Excessive sensitivity not found in other industries. I have heard that several psychologists are predicting my children's generation will be the most offensive generation as a counter to the extreme sensitivity (fragility) - https://news.ycombinator.com/item?id=20668380
* More selective bias, online code tests. Now when I see online code tests without extremely specific grading criteria I instantly terminate the conversation. - https://news.ycombinator.com/item?id=20605329
Sure... when general AI becomes available, flexible, and has solid usability for something like this. Which will be about the time that faster than light stardrives become common and our meals are materialized out of thin air on demand.
Despite perceptions, the last few years' "AI boom" is mostly marketing. Advances in processor power have made deep learning algorithms practical outside lab settings, but we're not even close to a "generic AI" that can think as well as even a dog can. That's decades away at the earliest.
Right now, we don't even understand how our own brains work.
StackOverflow has many great explanations, which are no different than reading a chapter in a book (it's just a book that is extremely relevant to you problem).
The problem is that lazy people demand code dumps, and lazy people provide code dumps instead of explanations. This then becomes a feedback loop as people get used to this degree of laziness.
This is especially rampant for Web topics, and to some extend also a counter-argument to the Borland help pages with examples: When presented with a fully written solution, people will blindly copy it and only do the minimum amount of work to make it run.
Perfectionism is not required, and can get in the way of professionalism. This is about a minimum amount of responsibility.
(Learning is different though.)
Miles ahead.
Pascal is what we need, but C is what we deserve. Billons of dollars wasted in it.
What it have bad is the massive mismanagement of the owners, and that translate to lack the influx of talent to it.
Note: I'm moderator in a Delphi forum and use it for years. I'm now in rust, and is great yet:
- Some of the problems that rust fix? Delphi too decades ago.
- Delphi still compile so fast. All the stupid c-based langs are turtles. Including LLVM. Is a sad joke that "I use C-/C++/rust" for performance and the compilers NOT PERFORM. Period.
- All the other currents langs on earth, all of them, still fail at build a GUI easily.
- Only recently, with Go and now rust, people rediscover the joy of easy deployment. Delphi have it decades ago.
Of curse Delphi is not perfect, and we the users know it. Sadly, in this industry worse is better and without a path to improve the lang you are at mercy of the owners. But like smalltalk, foxpro, hypercard and others, Delphi is a testament of what could be a decent lang/environment.
That the community at large still inflect itself with massive amounts of pain and billons of wasted effort with c/c++/js and still refuse to learn? Is something I will never understand.
P.D.2: If this sound like a rant? Yes. My super-duper machine is still compiling with rust and I'm frustrated, because this post remind me that this pain could be avoided...
The reason I stopped using it was that I discovered that there are many more program types than Windows GUIs - and there, C++ (or sometimes C) is really the best. High performance lock-free lists? Support for obscure network protocols? Containers with custom allocators? Delphi does not really work there.
Is interesting to note that you can see "High performance lock-free lists" in many langs, but near none have good GUIs builders. Good GUIs builders are harder, and your "High performance lock-free lists" is easy, also you can use C/C++ libraries in Delphi too...
> I know Delphi!
I would argue you can made good courses in any language and it would seem more convenient to teach in something that has better transferrability into industry.
Also the response is likely aggravated by this quote from the source article:
> a curriculum that has taken heavy damage from the adoption of Java and C# in the early 2K’s.
wut?
As an example, the free version of Turbo C++ 1.01 that is available through the Borland/Embarcadero museum (or was at some point, i don't know if still is) has ~34 introduction examples (referenced via their guide) that outside of a couple, use only basic stdio and stdlib stuff (these 2-3 examples that use a non-standard header use conio.h which AFAIK is borland specific, though Watcom/OpenWatcom and Visual C++ also seem to provide the used functions) without any DOS-specific functionality (be it far pointers or whatever) and could compile with any modern compiler.
Now, a minority of us believe that desktop apps are really worth fighting for. They are fast, they give user control over their data, they can work offline, and the subscription model is optional rather than built in. Some in the mainstream would like this to be killed. Some companies like Apple approve it as long as they get their cut. But most simply don't care. If you don't want a future where everything you use is controlled by someone else, then the Turkish decision is not meaningless.
If you teach C, at least teach C99 using a contemporary compiler—C11 was available when this all occurred. At no point did I suggest that a different language or paradigm should have been taught.
If the goal is to get more students to become programming literate, then the last thing that I would want is to pick a random flavor of the day language, with some frameworks, and some "best practices" debated to the oblivion on HN or Reddit. I would want all schools have a pretty standard system, with identical software that works identically because the goal of that software is to act as a pen and paper in a class. It needs to get out of the way.
Imagine the conversation had they picked C++ and do Linux. First, there's going to be a multi-year debate if we should be using Ubunto, Centos, Arch, until some pointy headed expert says "The future is in CoreOS!" just before everyone decides to standardize on Fedora. After that there would be a fight about versions, because everyone knows we should always run the latest. That's except for the group of people over there, that are refusing to run the latest and want to run the proven. Oh and they do not want to do C++, they hate C++ and say it should be Rust and since it is a Linux system and shadow IT is pretty easy on it, they are going to teach Rust! Or mostly argue about teaching Rust... etc... etc.. etc.
Here's a thing - if 10% of students gets out of the Delphi environment and starts messing with GCC for any reason then the program already succeeded in achieving the goal.
A little bit too harsh. As the article points out Delphi is currently #12 on the TIOBE Index [0]. Above Go for example.
And Delphi itself was a standout leader in technology, a huge inspiration for C#, and still a key technology used by many people today. It's just not well known. Not well known != ancient.
5 or 6 years ago, our ex-minister, claimed that it is dangerous to work with computers since they can be challenging for the mind in a conference about cloud computing. Let that sink in.
I wouldn't call Delphi ancient. It's not like they haven't been updating it. Delphi can target Windows, macOS, Android, iOS, and Linux. It's pretty good:
Delphi is a modern development environment. I haven't used it recently, but it was incredible in the 90s/00s and I know it kept adding features and platforms. AFAIK Beyond Compare is built with Delphi.
Delphi isn't ancient, if anything chances are some of the tools people use nowadays on Linux are older than Delphi.
I remember back then(2002'ish), Pretty much all CS labs had Borland Turbo C.
The funny thing was the output prompt would disappear after printing things, so to hold it there, people would add getch(). This was so common, I remember at one point people treated getch() was something you always added at the end of the main(), like a return statement.
If anything it should be mandatory to learn something else. It might be the only non-work programming language they will ever learn. Cradle to grave Python / Java?
Would Common Lisp / Haskell be considered a bad / good / ancient choice?
Python is great for this. You can have kids building whatever in class and they can go home and use the same tools and make videogames or visual novels or whatever else strikes their fancy, and when they get hired still use the same tools.
My main issue with haskell is that it's likely not very transferable. That isn't to say you shouldn't be able to use it or teach it - maybe you can teach something unique with it you can't teach with other languages, but that needs a bit of explanation beyond just "well I prefer it".
The education should serve the students, not tickle the fancy of the teacher.
I thought this for a long time, having taught myself Haskell in university. I never regretted it, but I'll admit I never thought of it as a practical choice either.
Then I ran into Rust, and found I was somewhat mistaken. ;-)
If they just learned anything they'd progress at roughly the same rate, but when their motivation is impacted it makes a bigger difference.
Common Lisp lacks a static type checker, or any decent type system. These days I consider that a catastrophically bad design choice, and I can't justify teaching it as anyone's first language. It's also, well, it's design by committee.
Scheme might be better -- at least then you'd be learning about call/cc. If you aren't learning a language purely for work, then I think learning it should teach you something new. Scheme, Rust, Haskell, even Java/Kotlin if you've never used a decent IDE -- all of those can teach you something. CL sort of can't, anymore, though for a long time it could.
Does anyone have a recommendation for a good, up to date, open source, introduction to programming? Ideally something that uses an experienced programmer (i.e. me) to guide.
The first half of the course is mostly in C and then switches to Python, and I really think it is a very well designed course that get students doing some interesting stuff very quickly while building a solid foundation for future learning. There is an online version of the course and students can watch all of the videos and lectures. I believe there is also a teacher training program for the curriculum.
I was surprised when my son came home and started asking me questions about malloc and free, but he has learned a lot in a very short period of time.
At this point I think it's probably a matter of "you either have it, or you don't". All of the people who succeeded "already knew" how to program, before I even showed them, or they never managed to learn.
And my experience is even with people who actually did manage to secure a programming job. In my opinion they still don't know the basics - they blindly follow "procedures" and mostly do copy/paste programming, without being able to grok the idea and why these things work the way they do..
Likewise, getting into intimate discussions on file encoding or strings in memory just isn't going to be retained by someone whose major interaction with a computer is facebook.
Focus on practical tasks, but take time to explain what code is doing in plain english. If you've done rubber duck debugging, you're aiming for that level of simplicity in your explanation. Avoid technical words, use simple metaphors and generally avoid the history lessons. Once you establish a baseline of skill in the developing programmer, swap the roles - have them explain their code to you.
painful 16-bit near/far memory model
a single task operating system (DOS) that has been long obsolete
no support for networking or threads
I could go on and on.
Would you advocate pilots stop learning to fly in single engine prop planes and instead jump right into the cockpit of an Airbus because that's what they will encounter in the workforce?
Any why are doctors practicing on dead people when clearly they can't possibly help them or cure anything that way...
I don't think your example is a valid comparison. It's more like do you think all teenagers need to learn to drive a horse driven carriage before they learn on a modern car?
That makes it an odd choice, considering gcc and clang are free and cross-platform.
Hell, they even have a C89 mode if you'll be deep in the cold, cold ground before you recognise // style single-line comments.
It's not C that's obsolete, it's MS-DOS and the 16-bit segmented memory model it uses.
"Fond memories" is easy to explain if that's what you grew up with. As for simpler, let me play devil's advocate for a bit: our "modern flat model" looks simple until you find out it's not really "flat". The 8086 model is basically "(segment << 4) + offset", while the "modern flat model" is actually a multi-level table lookup.
Meth addicts don’t make _everything_ about meth.
It has pretty low entry barriers, and is pretty capable. When I used it (as a hobbiest, during Delphi 5 and Delphi 7 times), it had a superb tooling, and a really efficient compiler. Everything "just worked". It's now 15 - 20 years ago, when we created really tiny Windows exe files. A notepad.exe clone in only 23kb size - with no external dependencies at all, just using pure Windows32 API and Delphi. These where truely fun times.
Miss them some times.
Another benefit was that it was possible to interoperate with low-level Win32 API and the enormous component library provided by third-party authors.
Yes, absolutely. I'm happy to see that "Project JEDI" is still around[1].
Cost being the obvious large one.
Every time I’ve had an inkling of interest in Delphi, I pop by the website and nope out within a few minutes after finding the pricing page.
https://www.embarcadero.com/products/delphi/starter
For the commercial versions, AFAIK overall it's less than Visual Studio, but when amortized over a couple of years. Slightly different pricing model so trickier to compare.
It's not like we had an internet connection to learn from.
At least that's how I learned the difference between static and dynamic linking.
However i have a feeling that MrGilbert refers to using the Windows API directly without VCL in which case you can create very small executables.
Maybe I should write a progam like that, just for the fun of it. It still works nowadays. I might even get away with FreePascal. I'll give it a try. :)
Grammar note: "hobbyist". "-ist" is the suffix for, "A person who does this thing"; "-est" is the suffix for changing an adjective into a superlative: "Yours is hobby, his is hobbier, mine is the hobbiest."
I cannot think of a single positive reason behind this decision in 2020. All I can think of is that the people that came to this conclusion are the ones who graduated from Computer Science related studies in ~1998-2004~ and immediately got themselves in politics. I lost count of how many times have I heard that if you pay for it, it's just better...
Finally, I admit that I'm definitely highly biassed when it comes to Turkish Politics.
You can see it in action under Linux here where i make a simple puzzle game:
https://youtu.be/s_01Xhd2EJM?t=692
(if the time stamp doesn't work, skip to 11:32, the previous ~11 minutes are me downloading, compiling it and configuring it - not 100% necessary on Linux and on Windows i never do that as the installer is a classic wizard-based one, but as i write on the video, i prefer to compile it when using it on Linux - also note that on Windows you do not need to install FPC as it comes bundled with Lazarus, it is really just running the installer, double clicking the desktop icon and you're ready)
In Delphi culture, people say PChar instead of char* , and make tons of PFoo and PPFoo. And I think the reason is that some syntactical restrictions made Pascal easier to implement back in its time (last I checked there were still significant restrictions in Delphi)
[1] https://www.metu.edu.tr/tr/system/files/2015-2017_general_ca...
Assuming they would want to try their hand at making money out of what they learn, they could target the kind of companies which were served by VB6 or FoxPro in the past :)
Anything web-based is ridiculously complicated and has worse performance.
That is important to actually learn how the computer works
Sure C# and Visual Studio makes more sense and they could get everything for free, but maybe Turkey doesn't like/trust Microsoft.
It was even better to visually see various sort algorithms in motion.
So, really, I could see the appeal for that kind of teaching... but I still don't understand using Delphi/Pascal.
(Our first CS class was actually taught with Pascal and that was painful)
> I had already started programming GUIs in Windows (MFC days)
MFC and Delphi's UI model are completely incomparable. One is statically built, often in code, inflexible, hard to iterate, hard to use custom controls... and one is modern OO, buildable visually (streamed to text, so editable in text), incredibly flexible, very fast to modify, and with thousands of custom controls.
And these days it builds for macOS, mobile (iOS and Android), and Linux too. So it's a decent choice.
* You want to teach principles. Delphi allows you to teach OOP principles. You may or may not agree that OOP should be the starting paradigm, but that is at least a popular and conventional opinion.
* You don't want complexity. I am sure there are many alternatives that do things better. Heck, I am sure some Haskell guy will tell us itt how he can build a graphical interface in half a line of code. But remember these are kids who may not even understand what a program even is!
* You want results. In particular, it should be easy to create things like a user interface via the IDE. The fun about learning programming is to create something cool. Kids today most often use UI's and not terminals, and I think there is real value to allowing them to create something they might actually use. If you struggle through understanding your first program, and all it does is to print out "Hello World" on a black interface, it is somewhat underwhelming. But if you can use the IDE to create your custom "hello world" box with pink borders and a unicorn picture - well that's cool!
* Of course you want students to be able to transfer their skills to other languages. But that's arguably not a big issue with Pascal.
* Finally, you want it all in one package. If you have to learn a vast module infrastructure, it just complicates things. Here is your "language", you can do everything in it. I remember when we were learning, we started to try to build games and stuff. We used the tools available to use, because it was all very complex and we understood little. It was useful to have such a limited toolbox in the view of complexity. I think if we were forced to think about modules and many, many options to do a thing, we'd probably give up. Of course it is educational to try to come up with a solution with a limited set of tools!
From this perspective, Delphi is not a bad choice. Indeed I think the only other similar choice would be C#, which would probably cost more.
However, Delphi is an outstanding tool for production and together with Freepascal/Lazarus one of the best options for cross-platform application development - certainly on a par with C++/Qt. So this is a pretty smart move of Turkey to get some innovation going, and I expect great new end-user applications to come from Turkey during the next 10 years.
Such as?
When teaching, non-GCd languages just get in the way. You don't want students apps to be segfaulting constantly because they're running into memory errors whilst you're trying to teach them something else. Learn programming and get confident with it first, THEN learn the techniques needed to safely manage memory (maybe).
I actually learned programming as a kid with first Turbo Pascal then Delphi. My programs crashed with the dreaded access violation error all the time. Debugging that sucked. I assume it's better these days.
But i still do not see why this is an anachronism. Do you consider manual memory management an anachronism?
How would automatic garbage collection help in a scenario where you are deliberately accessing an object that you haven't created or have destroyed already?
Delphi just installs with a double-click and you can write code in a box and it runs.
Old languages? Delphi is a lot newer than C. C in a mostly modern form dates from about 1977; Delphi is from 1995.
If you want to just write code in a box and have it run, maybe you should use http://sketchpad.cc/ or https://jsfiddle.net/. Or code.labstack.com, intervue.io, codepad, codiva.io, paiza.io, compilr, ideone, onlinegdb, repl.it, rextester, mycompiler, jsbin, sequential, or the other couple dozen alternatives in https://en.wikipedia.org/wiki/Comparison_of_online_source_co.... Or ObservableHQ, which is fucking amazing. Or try.jupyter.org. Or just your browser's JavaScript console. Or ShaderToy, where you can program in GLSL. Or Philip Guo's http://PythonTutor.com/ which can step you through the execution of simple code step by step while visualizing the stack.
And Python is five years older than Delphi, too. So it's not about disdain for old languages. Python was originally developed to be easily accessible for beginners, based on Guido's experience with ABC, which was purely a teaching language, and for some time Guido's main project was CP4E, Computer Programming for Everyone. It's moved away from that in the last 15 years or so, sadly, but some aspects of it still remain.
Just because Delphi isn't cool doesn't mean it's not useful. It can teach many concepts that students can build on if they desire to.
Heck, you're acting like the first language you learn is even important. I learnt using Visual Basic 6 and it's not like I didn't go and learn new languages by myself.
Oh, I guess you haven't met me. I'm happy to spend hours and hours scoffing at C.
Delphi is actually a pretty good language, though. :P
You can do that at https://www.onlinegdb.com/online_c_compiler, but do programmers use that website for professional programming? No, because professional programming is about integration into a system/platform, not about one-size-fits-all sandboxed environments.
As a language Delphi/ObjectPascal is anything but ancient. It is kept up to date and has all the important features one would expect modern language to have sans garbage collection (well I actually consider this as advantage). It produces fast native executables without any dependencies. It compiles with such speed that one can write shell scripts in it. It has the right balance between a mountain of complex features C++ has and something like Go. Its IDE is nice as well and full featured. Both language and the IDE exist in paid version supported by commercial vendor and as an opensource project in case of Lazarus/FreePascal. Sure there are some problems but show me the language that does not have any,
In my opinion the only REAL problems with the language/tools are all political. At some point these products were suffering from bad corporate governance and on top of that Microsoft went out of its way to actively destroy market for these in North America and along the way poached all leading developers from Borland including main language architect.
To make a conclusion I think that ObjectPascal along with the implementation is a good candidate for being used in many areas as generic well thought out language along with the IDE.
As for the article: I think it is a good move on Idera's side. To call it corruption is disingenuous I think. Many corporations are using the same tactic. It is friggin business.
No RAII or ownership tracking, no borrowck, no support for concurrency free of data races. Huge deal breaker.
https://wiki.freepascal.org/management_operators
These are not in Free Pascal 3.0.6 (used in the latest Lazarus release) but they are in trunk and will be available in Free Pascal 3.2. I think they are also available in Delphi since a while now.
So if they learn Delphi, they can use some software automation to make their jobs easier, and they can easily learn another language if they turn out to be really good at this new thing. After learning an OOP language, learning a new one takes at most a week.
The web craze hasn't infected the entire planet (yet), and there's many small companies that require different tools and can't afford the big name packages or they can't find something matching their requirements.
* New things are typically more popular than older things.
* People not using ObjectPascal / Delphi love to hate on it.
* People using it feel outraged at the injustice, pointing out it's merits.
I have been using Delphi for about 30 yrs it seems. I have a love / hate relationship with it. Love the language and the ability to rapidly get the program I want created. Hate that version after version, the IDE STILL has stupid bugs; that the built-in help seems to get worse and worse with time (I don't want a slow web browser showing me Microsoft C calls and all sorts of irrelevant nonsense), and get very annoyed when having to get required custom components installed before being able to open a project using the components. And I REALLY dislike that they charge so bloody much for it. For business reasons I had to purchase a license that cost a few thousand dollars. Like 2 weeks later, sales people were calling me encouraging me to spend a similar amount to upgrade to the newest version that had just come out. They must have only a handful of paying customers and depend on the few to keep their entire business afloat.
I recall discussions with other students in my first year of uni about how they learned to program real things for family and businesses with these tools. Native and efficient Win16 and later Win32 (compared to VB runtime) programs were an exciting proposition in the 90s. Delphi could be used to create things that weren't as viable with VB. Personally, I chose C++ Builder for some reason (probably because I had heard about the industry use of C++), but even it had interesting facets, like the VCL compatibility with the Delphi toolset.
Turns out there's a free Delphi-compatible IDE called Lazarus: https://www.lazarus-ide.org/
Here is a simple tool i wrote in a couple of days in Lazarus:
http://runtimeterror.com/tools/bugs/
Also here are a couple of other applications i've written with it:
http://runtimeterror.com/tools/gopher/
http://runtimeterror.com/tools/lila/
I've written some other stuff too, like this graph editor:
https://i.imgur.com/S2qTuU1.png
or this 3D world editor:
https://i.imgur.com/s0GaK0A.png
https://i.imgur.com/316SmAh.png
or these two tools for creating bump maps and combining meshes to create textures:
https://i.imgur.com/RaZQz68.png
...but those are run-of-the-mill tools that i haven't available anywhere. Also i have a bunch of other tools i do not have screenshots of and there might be some other stuff on the server i do not remember :-P.
However, in my personal opinion, Pascal has not really kept up with the sort of creature comforts that nowadays even C++ affords the programmer. The IDE (Delphi or Lazarus) also don't provide the kind of help Eclipse gives you when using Java, even though Pascal may feel as verbose sometimes.
* One million Turkish kids
This isn't necessarily corruption. And we have no idea what they paid. The internet is lousy in Turkey, having a stand alone system with documentation, an IDE and a great debugger will work really well in that environment. Pascal is a perfectly fine language.
In my universe they started using Racket and The New Turing Omnibus (for middle school) and then The Little ____ Books [2] and then on to Structure and Interpretation of Computer Programs [3]
[2] http://www.ccs.neu.edu/home/matthias/books.html
[3] https://mitpress.mit.edu/sites/default/files/sicp/index.html https://github.com/sarabander/sicp
Um, what? I just signed up for fiber in Istanbul, lowest plan, 25mbit, at dirt cheap $11 a month — unmetered. Meanwhile my San Francisco apartment, Comcast charges me $67 a month for a 50mbit capped one.
While there is some variance in availability (just like any other country) Turkish infrastructure is generally first-world. It is for political reasons that it gets demoted into the second, but ultimately we’re talking about a place with a $25k~ GDP PPP per person [1]. That’s more than Greece’s, and climbing towards Italy’s.
I don't know why people in this thread seem to think that Turkey is a poor developing country. It's not. Even with the recent political issues and the economical crisis, it is much better than a lot of country in Europe and in the EU.
Also, good LTE availability is also probably because it’s easy to place towers on top of flats legislatively speaking, and due to ruthless competition between three carriers.
In the EU, there is a lot of prejudice against Turkish people because of the decades of immigration. Think of how most Americans stereotype Mexico and Mexican people, and that's roughly how many people in the EU regard Turkey.
In the US people don't really know anything about Turkey, aside from a vague idea that it's "middle eastern". Honestly I wouldn't be surprised if a huge percentage of Americans think Turkey is all deserts and they speak Arabic.
Arguing over internet speeds when it comes to choosing a system for kids to learn programming on was by far weakest argument. I should have just removed it, as it was a straggler that was going to die anyway.
You rarely have dead zones between cities and most towns but the Internet sometimes downgrades to 3G or Edge if you're in a super rural area.
This is how you transfer tax money to your cronies.
What are you up to? Something like https://trixter.oldskool.org/2015/04/07/8088-mph-we-break-al... where the needless effort is the whole point?
Also, you can get a version with support even from Mentor at https://www.mentor.com/embedded-software/sourcery-tools/sour...
Look at the: > These releases provide cutting edge support for 8088, 8086, 80186 and 80286 processors from the year 1984.
section.
It's simper, has fewer distracting features but covers all the important things, doesn't enforce too much boilerplate.
Unfortunately it's undead since like 10 years.
> Getting object-pascal back into universities and education is very important. Not just for Delphi as a product and Embarcadero as a company, but to ensure that the next generation of software developers are given a firm grasp on fundamental programming concepts; concepts that represent the building-blocks that all software rests on; a curriculum that has taken heavy damage from the adoption of Java and C# in the early 2K’s.
doesn’t sound very convincing. Not a Java fan at all and never used C# since AFAIK it’s mostly used in the Microsoft ecosystem (I heard very good things about it though), but what fundamental concepts can’t be taught in a Java & C# curriculum that can be with Delphi? The article unfortunately doesn’t expand on that.
On the other hand Delphi's just Delphi. That's quite refreshing in a world where everything depends on everything else.
I used Delphi for years back in the day, and will always have a soft spot for it. But your claims here are simply not true - the .NET standard library is huge, and you can get a lot done without any other packages.
The Java/.NET stdlibs are huge. They are more than sufficient to teach basically any of the foundational skills. Then if you want to learn Hibernate or ORMs, no problem, that's only a small extra step.
is this true today? Back in the day it was Delphi + JediVCL + JediCL + plus lots of other different components that looked better than bundled ones. Does it have a package manager or you still need to install a bunch of EXEs?
Why do you think this? I regularly write plain Java code, or code using just a couple of simple libraries.
I guess someone from the government had just become significantly richer.
But they could have used free pascal and save millions, though. This looks like your usual government corruption. At least this time they bought something useful.
Delphi has seen its day. Any number of other languages can be taught for free... python is probably a more relevant choice.
Python doesn't have any standard graphical IDE or even GUI widgets. No modern language can create GUI applications with the ease of use of Delphi, except maybe .NET (which is based on Delphi).
Swift and Interface Buikder?
(Android later did basically the same thing with Dalvik)
One could ask why not invest in https://www.lazarus-ide.org/ instead of commercial Delphi though?
Agreed completely!
Not only that, but an argument could be made that the TIME that a given body of source code takes to compile -- can have a huge impact (positive or negative) on programmer productivity...
Case in point: The Linux Kernel (written in C)...
You make a change, even a small one, and you're probably going to wait for HOURS for it to compile...
HOURS...
Before you can run it, to know what your change accomplished (or didn't accomplish!)...
HOURS...
If the Linux Kernel was written in Delphi, compilation would take no more than a few MINUTES, even on a modest machine, and possibly a lot less, possibly seconds, depending on the dependencies of the code that was modified...
That's the technological beauty of a single-pass compiler that caches precompiled source and its associated symbol tables (and only recompiles what's needed, only when it's needed)...
Which change-compile-test-feedback loop do you think would make a programmer more productive?
?
Hint: Even a non-programmer could easily know the difference...
Yes, there are languages which are more popular, more attuned to web development, more Lambda-esque in nature, and these things are virtuous, to be sure -- but in terms of raw compilation/run/test/change/iterate speed (aka productivity), Delphi smokes all of them...
For a programming job in the U.S., with many employers using differing technologies, it may be a loss, but for education, for the ability to learn how to think (as a programmer) and subsequently grow into other tools/technologies, it's a big WIN.
> You make a change, even a small one, and you're probably going to wait for HOURS for it to compile...
I've done this before. For a small change in a .c file, it takes less than a couple of minutes in a not-so-fast computer. It only has to recompile that .c file, do a partial link of the subsystem, do a final link of the whole kernel, and a few other auxiliary processing steps. It takes more time to reboot the machine or VM with the new kernel.
Even compiling the kernel from scratch is fast. Looking at a Phoronix benchmark (https://openbenchmarking.org/showdown/pts/build-linux-kernel), it takes less than 15 minutes on all systems tested. Some systems can compile the whole kernel from scratch in less than half a minute.
(note that i'm using Windows and mainly with my own projects and components and i only use the components that come with Lazarus)
Then why is it being used as a teaching language in many US schools?
https://www.apple.com/education/docs/everyone-can-code-curri...
A bit more relevant and marketable than Delphi. And with Swift playgrounds, students can even practice using an iPad.
- Because you still need to bill your customers even when the net is down or slow,
- It works faster and more reliable on old, low on memory PC that you probably have. Also can work with old printers, barcode readers and pretty much anything out there,
- Power of habit (a big deal),
- Don't want to keep your accounting details on a remote server. This is probably of less importance for restaurants, but very important point for various trading companies, as it's not uncommon for someone to bribe accounting firms to leak info on competition.
I was an early web developer who transitioned into a modern one as time passed but I've moved back to desktop application development as of late because that's what was hiring in my area at the time I was looking for a job and I simply am not married to a particular technology.
Or maybe Lazarus isn't as good as its website makes out? I haven't used it, but used Delphi for a couple of years in the late 1990s.
While everyone is trampling over each other to get into the tiny little door (the SaaS/FAANG/npm/golang/frontend/iOS scene), they found the smaller side door that no one else is taking.
Delphi is good for ordinary line-of-business software, all the boring back office software that people take for granted in first world countries.
I think more obvious options would be something like python for it's practicality, and something like clojure for elegance and more advanced programming concepts.
And they're free. I hope this isn't a case of graft.
I think this is just another money embezzlement scheme by Turkish official, which shouldn't be that surprising unfortunately.
Those days are gone, but the legacy still remains.
For this deal though, I guess Embarcadero is desperately looking for something that looks like a sale. All the cool kids in the west have switched to shit web UIs and they're probably left only with a few legacy customers.
Edit: Yes, the deal is most likely bribery. Doesn't make Embarcadero less desperate. Their fault for going enterprise and pricing Delphi out of a hobbyist's reach.
Edit 2: Sheesh, cheapest Delphi license is 1699 eur... back before Borland (sorry, Inprise) got sold i think it started at 300...
Edit 3: It's still much cheaper than Qt at 5500/year. This is how great platforms die.
The cheapest version actually started at $99 and that was up to Delphi 5 IIRC. Later versions bumped the price to $199 (and i think there was a $99 for non-commercial use) and then quickly ascended to thousands.
I think it was after Delphi 5 that they also renamed themselves to Inprise.
Would probably have picked something with a bit more job market potential though
Heck, country that size and government backing at that scale could of thought - lets build a Turkish home made computer of rpi levels.
Reading this I just can't feel like an opportunity missed.
Studying software programming does not start with buying licenses.
It's like teaching kids to use Office, without even having the ubiquity argument.