Live data from Hacker News

Ask HN: Do you use an old or 'unfashionable' programming language?

news.ycombinator.com

101–110 of 338 posts

Re: Ask HN: Do you use an old or 'unfashionable' programming language?

#101
Although I mainly write code in Python, JavaScript and Go, I have a SaaS web application that was written in the early 2000s using ColdFusion (CFML) which I still support (started at v5 and now runs on v8). In the mid to late nineties (and early 00s) it was one of the best ways to write web applications (it was actually the first Application server as far as I know). But today is 2016 and ColdFusion is one of the least fashionable language I know. I cannot with all honesty say I enjoy working with it, and all signs show that its a dying language with very few people to mourn it.

Although it started its life as a standalone (C based) web application server and the CFML language, it was rewritten to run on the JVM when Macromedia acquired Allaire, and these days owned by Adobe. Essentially its a glorified JSP tag library. The CFML language itself looks like XML and offers a "script" alternative syntax which until recently didn't even support all the functionality of the tag based syntax. What as good about it was the ability to hook to a database and perform queries very easily. At later versions it even received OOP features. Fancy that.

Re: Ask HN: Do you use an old or 'unfashionable' programming language?

#102
post #32

I use MATLAB for 90% of my day to day work, for a combination of reasons - 1. Historically it is what has been used at my firm. We have a lot of code already written in MATLAB, interfaces to internal apis, external data providers etc. Everyone at the firm understands MATLAB code. 2. It really is very good for numerical work - both in terms of speed, and clarity of the code (much better than Python and R for clarity -…

I also dislike R. Strongly disagree with the argument that MATLAB is more clear than python, however. Have you tried numpy/scipy? Provides excellent performance and very powerful APIs.

I've always found that a great deal of the MATLAB syntax does not gel with my expectations. "./" vs. "./" for instance, or using parenthesis to address array elements.

I would much prefer a truely OO capable language, as well.

Re: Ask HN: Do you use an old or 'unfashionable' programming language?

#103
post #47

Earlier quoted context omitted.

"He writes bank software. In BASIC. For forty years. At the same company" I would have gone insane :)

He didn't say his father was still sane ;-)

True... No disrespect, but I wouldn't be surprised if the company hasn't actually existed for 20 years already ;))

Re: Ask HN: Do you use an old or 'unfashionable' programming language?

#105
The code for my startup is in Visual Basic .NET (VB). Before you laugh, it's essentially just a different flavor of syntactic sugar as C#. For my approaches to writing code, VB is fine.

My scripting language is Open Object Rexx, and a version of it, Kexx, is the macro language of my favorite editor, KEdit. I have about 150 scripts in Rexx. I do nearly all my typing into KEdit and have about 150 macros in Kexx. Some fine day I may move to Microsoft's PowerShell -- if they write better documentation, then I will move sooner.

If I have some optimization (mathematical programming) to do, then I will use the IBM Optimization Subroutine Library in object files ready for Fortran from the Waterloo Fortran compiler. So, I'll use Waterloo Fortran.

For more in programming languages, I still like a lot that is in PL/I, especially the ideas around tasks, memory management, exceptional condition handling, and scope of names -- all of those deeply interact in nice ways. And I'm totally in love with PL/I structures, much more efficient than objects, a little easier to think about, and nearly as powerful.

For more, I want more on a programming language that (1)admits some automatic transformations that improve some properties and preserve others, (2) can report on some of what is going on in the code, and (3) helps with documentation. For (3), IMHO the documentation is more important than the code but in programming language design is treated just as meaningless gibberish and an after thought. Yes, Knuth's literate programming was a step forward but that lesson seems to have been forgotten for other languages.

Re: Ask HN: Do you use an old or 'unfashionable' programming language?

#107
post #101

Although I mainly write code in Python, JavaScript and Go, I have a SaaS web application that was written in the early 2000s using ColdFusion (CFML) which I still support (started at v5 and now runs on v8). In the mid to late nineties (and early 00s) it was one of the best ways to write web applications (it was actually the first Application server as far as I know). But today is 2016 and ColdFusion is one of the lea…

Hate to say it, but you'll want to upgrade to a later version than 8. There are a lot of exploits out for 8.

Oh, that was the other crappy angle for ColdFusion I forgot to mention in my post - the $1500-and-up license fees.

Re: Ask HN: Do you use an old or 'unfashionable' programming language?

#108
I admin/dev on an old LDMud, which means the "game" is written in LPC: https://en.wikipedia.org/wiki/LPC_(programming_language)

Perhaps not a terribly interesting addition to your list, since the reason is obvious: I keep using it because it's the language the game is written in. That said, I'll play along and discuss what I like about the language:

One of the fun things about working on an LDMud or in LPC is that the game driver (written in C, compiled) gets loaded and serves as the virtual machine for your game, and the parser/compiler for your game's LPC code; this means that once the game is up and running, as long as you aren't editing some really foundational game objects, you can create/load/destroy/update/unload most of what you use inside the game environment without a recompile/restart of the game. There's very little friction when you can quickly play with the new objects/npcs/environments you're creating as you iterate.

You can see the age/heritage of the game as a glass half full, or half empty. You can be frustrated that some relatively modern concept/module/support doesn't exist, but you also have the opportunity to learn from writing it (and not just as an exercise; for production!) Because it's got such a long legacy, you get plenty of chances to rub up against old code and reason about what constraints may have shaped it, and whether it is worth refactoring. Chances to become conscious of the extent to which decisions you make in the present will someday look as curious and smell as musty as the legacy code you're griping about.

It's very OO, and code re-use is a big deal. There are some really complex inheritance trees, and while a lot of issues you'll run into are the sorts of problems you'd expect, I feel like it's pretty good training for breaking down and reasoning about complexity of any sort. This gets ratcheted up by the interesting concept of allowing a certain kind of object to "shadow" another object at any time. A shadow object will intercept calls to the object it is shadowing, giving it the opportunity to modify how the shadowed object will behave. So, for example, most classes, subclasses, boosts/buffs/curses/etc. are implemented as shadows you apply to a player object, or to some piece of their equipment.

Re: Ask HN: Do you use an old or 'unfashionable' programming language?

#110

Earlier quoted context omitted.

There used to be a company called IDX which sucked in many MIT grads into the world of MUMPS. GE bought them.. do you work for GE?

Or Epic healthcare in Madison, that was my first job out of college and continues to grow at an insane rate. MUMPS was a kinda cool language - I liked it a lot better than VB6 which the GUI was written in. Every line had to start with a command like 'set' or 'do', which was abbreviated as 's' or 'd' which looked pretty gnarly. The `for` loop syntax there was a difference between 1 or 2 spaces which after the 'f(or)'…

I'm there right now.

I think the only reasonable alternative would be something like erlang at this time.

I see M as still used because it is without fail very predictable in resource usage and behavior, and with certain patterns, not prone to fail or crash. It also can be updated in runtime without having users have to restart or reconnect for most cases.

I suggest Erlang, because it has the similar desired behavior for error isolation and predictability.

Post reply on HN