12 ms·
This reminds me of a few (<10) years back when a high school student needed some C programming assistance. I then found out that they were being taught to use
by arghwhat 7y ago
This reminds me of a few (<10) years back when a high school student needed some C programming assistance.
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.
- gdm85 7y agoSince the details of the deal are not public, I will give you another possible speculative scenario: bribery :P
- h4l0 7y agoand think that they actually didn't get a job at teaching programming but they involved in politics and appointed as "Minister of Technology" for their "loyalty" to the Head of State. That's what Turkey is dealing with right now. 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.
- rytis 7y agoSounds similar to how cybernetics was "seen" in USSR (early years): https://en.wikipedia.org/wiki/Cybernetics_in_the_Soviet_Union https://en.wikipedia.org/wiki/Cybernetics_in_the_Soviet_Unio...
- Andrew_nenakhov 7y agoBorland C and Pascal were great for learning programming in mid-90s, because of one crucial feature: an immensely good built in help reference. 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.
- zozbot234 7y agoQuickBASIC works the same way. Rust doesn't really build its help documentation for "built-in" access in the programming environment (everything is web-based, even "local" docs launch in a web browser) but examples are a first-class feature; they're reused as test cases.
- agumonkey 7y agoTalking about that, rust html docs gobs a whopping 400MB (2/3 of the install size IIRC). When compressed they're 22MB.
- zozbot234 7y agoRust and cargo are quite wasteful of disk space anyway, they should fix that first. 400MB is a drop in the bucket.
- cesarb 7y agoNot long ago, there was support on Firefox to directly open HTML pages within compressed files (through the jar: protocol). If that still existed, it would be an option to distribute the rust HTML docs within a compressed .jar file, and let the browser read directly from it.
- agumonkey 7y agoyeah that's a pity albeit there's still zcat
- 7y ago
- zozbot234 7y agoI wonder if anyone has come up with a TurboC-like UI "theme" for, e.g. Emacs. Freepascal uses a Turbo-like UI by default and a free reimplementation known as RHIDE is already (IIRC) part of the FreeDOS distribution, so recreating the UI itself shouldn't be too hard. It might be a fun way to boost adoption of these terminal-based tools, since the ergonomics and UX is in fact quite reminiscent of modern IDE's.
- jhoechtl 7y agoVim has it https://github.com/skywind3000/vim-quickui https://github.com/skywind3000/vim-quickui
- zozbot234 7y agoThat's a nice start, but it lacks some of the most distinctive features. Even being limited to a single full-view buffer is not very Turbo-like. And I'm not seeing much IDE-like integration.
- mtgx 7y agoOr more than likely someone got a nice fat bribe to buy those licenses with taxpayers' money. This is more often than not the case, especially when the acquisitions don't seem to make much sense from an objective point of view.
- dvfjsdhgfv 7y agoI see your point, but the rationale might be completely different. Most programmers nowadays focus on web programming. The main reasons for this are partly technical (easy deployment, easier upgrades, multi-platform) and partly political (subscription model, complete control of user data). 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.
- arghwhat 7y agoYou missed the point: Borland Turbo C was a proprietary compiler and IDE that had its last release in 1988 (replaced by Borland Turbo C++, which died sometime in the 90's). It has no relevance in this day and age. 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.
- bluedino 7y agoNothing like people asking why conio.h doesn't exist in MODERN_C_COMPILER
- clouddrover 7y ago> and is now trying to apply the ancient tools 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: https://www.embarcadero.com/products/delphi https://www.embarcadero.com/products/delphi
- tristador 7y agoI've been toying with the idea of running a few classes to help early and mid-career adults learn to program. Although it's been so long since I first learned that I worry I'd struggle to get the basics across. 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.
- loxs 7y agoIn my experience, it's close to impossible (or maybe even totally impossible) to get the basics across. I have been trying with many non-programmers for years and I have followed many people who tried to become programmers. 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..
- vorpalhex 7y agoThe truth is what many of us consider to be basics - big O notation, b-trees, so on are not really needed by the average programmer. They might be useful (I get use from them) but they're not necessary. 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.
- loxs 7y agoI'm not even talking about big O or algorithms & data structures. I'm talking about the basic concepts of function, iteration, abstraction, indirection etc.
- anaganisk 7y ago10 Years ago? Pfft, we are still taught C with Borland turbo C in our CS engineering course.
- kamaal 7y agoLet me guess you are an Indian? 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.
- levosmetalo 7y agoIs that somehow wrong? What was so fundamentally changed in CS that makes teaching C obsolete?
- zozbot234 7y agoWe have Rust now which is a type-safe and memory-safe language. C is totally obsolete.
- michaelt 7y agoThe last release of Borland Turbo C was in 1988. 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.
- skocznymroczny 7y ago#include <conio.h>
- kdtop 7y agoIsn't this a bit like saying the last release of Ford's Model T was back in the 1930's? It is now called C++ Builder, and it is still regularly released. https://www.embarcadero.com/products/cbuilder https://www.embarcadero.com/products/cbuilder
- blub 7y agoOn the positive side, Turbo C didn't include telemetry and didn't have to download "plugins" from the internet. 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.
- notyourday 7y agoHad I been that minister, I would absolutely do something similar to what Turkey did. 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.
- FpUser 7y agoYou should wake up and take a look. It is anything but ancient. It is mature but feature wise it kept up.
- fierarul 7y agoWhat does it matter which programming language they learn in high school? It's not supposed to be the language you use for work. It's supposed to teach you to program. 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?
- vorpalhex 7y agoThe student has to learn programming skills that can teach them the fundamentals quickly, ideally be transferable to most fields and hopefully something they can use freely on their own time. 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.
- Filligree 7y ago> My main issue with haskell is that it's likely not very transferable. 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. ;-)
- throwawayhhakdl 7y agoMatlab and a variety of other paid languages think otherwise
- Filligree 7y agoI have fond memories of learning Common Lisp in university. They might be fond only because it's something I decided myself, but SLIME was a revelation. However... 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.
- vladsanchez 7y agoWhat's the problem with it? Programming snob? Isn't it still C programming after all? I don't understand the problem with people bashing Borland after all these years! Didn't you know that the accomplished Mr Anders Hejlsberg was behind Borland (TurboPascal and Delphi), before he was appointed to develop Microsoft C# and Typescript? So, what's the/your problem!?
- billfruit 7y agoMay be one problem might be that it might condition learners to the peculiarities of programming for DOS and its archaic memory model, which aren't that of relevance to modern systems.
- vintagedave 7y agoTurbo C was a great C compiler. Embarcadero still gives away two (!) free versions of its C/C++ compilers today: the command line tools, and the entire IDE and toolchain in its Community edition. https://www.embarcadero.com/products/cbuilder/starter https://www.embarcadero.com/products/cbuilder/starter
- badsectoracula 7y agoDepends on what sort of stuff they learned - remember that those students knew nothing about C so they'd be learning very simple stuff. 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.
- marcocantu 7y agoWhat are you talking about? Delphi let's you build Android apps, not just DOS apps. And iOS, and Win64, etc...
- goatinaboat 7y agoA classic, time-tested pedagogical approach that makes it easy for a student to reason about what the hardware is doing to execute their code... or a flavour-of-the-month JS “framework” that is impossible to reason about and really will be obsolete before the end of term? Hmm tricky.
- adriantam 7y agoYou missed one important point about Turbo C: The debugger. It has an amazing UI even at today's standard. If you need an all-in-one tool to teach programming (esp focus on the concepts), Turbo C is still a good choice.
- perfunctory 7y ago> 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. A little bit too harsh. As the article points out Delphi is currently #12 on the TIOBE Index [0]. Above Go for example. [0] https://www.tiobe.com/tiobe-index/ https://www.tiobe.com/tiobe-index/
- vintagedave 7y agoAbsolutely too harsh. Remember Pascal was designed to be a learning and teaching language - this purpose is what it was made for. 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.
- kdtop 7y agoAs I recall, c# was developed by one of the primary designers of object pascal, Anders Jejlsberg, after being poached away by Microsoft. (https://en.wikipedia.org/wiki/Anders_Hejlsberg https://en.wikipedia.org/wiki/Anders_Hejlsberg)
- sequence7 7y agoYes and Anders Hejlsberg was also the chief architect of Delphi.
- badsectoracula 7y ago> trying to apply the ancient tools Delphi isn't ancient, if anything chances are some of the tools people use nowadays on Linux are older than Delphi.
- schoen 7y agoThat's an interesting thought. It seems Delphi dates to 1995, and gcc to 1987. (Also original vi and Emacs are both from 1976.)
- mamcx 7y agoThe mistake is assuming Delphi is bad and stupid. Delphi is MUCH better than C and C++. 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...
- theamk 7y agoI fondly remember using Delphi to create native Windows GUIs. It was really great for this. 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.
- mamcx 7y agoThat is an effect of ecosystem, not language. 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...
- beamatronic 7y agoOutdated or not, you can learn an awful lot using Borland Turbo C. You can implement any data structure you like.
- planteen 7y agoSure you can learn a lot but I have no idea why you would choose Turbo C in 2020 over say a Raspberry Pi with GCC. Turbo C (discontinued in 1990) is going to expose a bunch of irrelevant things today, as even most microcontrollers are 32-bit: 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.
- JackRabbitSlim 7y agoIn going from zero to programmer those aren't bad things, they are a simplified learning model. 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...
- planteen 7y agoA 16-bit space is not at all simplified, it's far more complex. Because of that, it is a terrible choice. It's a much more difficult memory model to learn in. In a flat 32-bit address space, a pointer is a pointer and it just works. It's much easier to conceptualize and learn on. Have you ever programmed for a bank switched memory computer? It's a nightmare. It's extra mental gymnastics pushed on the developer that have been irrelevant for a long time. 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?
- beamatronic 7y agoNone of that matters to someone learning how to implement a stack, a linked list, quick sort, etc.
- Phylter 7y agoOr someone marketed the software to Turkey as a great way to increase their IT skill set as a country. Borland was awesome back in the day (at least in my opinion) but what Embarcadero has done with the software in years recent is a travesty. If they're going to insist on Pascal they should go with Lazarus.