21 ms·
Ask HN: Do you use an old or 'unfashionable' programming language?
I couldn't think of a better word than 'unfashionable' but what I mean by this is a programming language that is not new, upcoming, or has much traction.
The language may have unique or novel features, it may be a language with a passionate and dedicated band of programmers. But one thing the language does not have is much 'mindshare' amongst programmers: its time in the spotlight has passed. It may still be in active development, or it may be moribund.
Examples of 'unfashionable' languages include: Cobol, Snobol, Icon, Unicon, Forth, Pascal, Eiffel, D, Smalltalk, Basic etc.(Note, I realize this is subjective to a degree.)
If you use an 'unfashionable' language, what keeps you using it? It is a unique feature? Is it familiarity or comfort? Is it speed or performance or some other quality? What do you think we could learn from that language when developing programming languages today?
- readme 11y agoVBA in excel.
- pfooti 11y agoI write a fair bit of Apex for salesforce. I can't say I enjoy it, but it is the only game in town. My org uses salesforce for a lot of day to day stuff, and there is a lot you can do with users on cheap licenses if you're willing to write custom controllers for it. I'm not sure if this is so much old or unfashionable, as Apex is pretty similar to java 6, but it is just not what I would call a "fun" language.
- deleted 11y ago[deleted]
- deleted 11y ago[deleted]
- KasianFranks 11y agoI use Tcl for AI in Life Sciences and Hedge Funds.
- kkovacs 11y agoI wanted to say that I still occasionally use TCL, too! :)
- nilkn 11y agoI also use Tcl quite a lot for some pretty sophisticated software. (And it's not embedded! It seems most surviving Tcl programmers are using it as an embedded scripting language.)
- ewindisch 11y agoI've written larger apps in TCL, but it was painful. I must admit to being guilty of using it solely as an embedded language these days.
- tdimaline 11y agoI use Delphi. The RAD Studio IDE is super featured and it's really easy to create interfaces. A nice feature is that the programs produced contain all dependencies so nothing else needs to be installed when distributing.
- codewritinfool 11y agoDelphi is excellent!
- nadgob 11y agoI used to program in Delphi between 1997-1999 and after that I couldn't get even close in terms of productivity with Java. It wasn't the language though, the strongest thing about the Delphi environment was that it was truly comprehensive and you'd just go in and implement your business logic.
- lobster_johnson 11y agoSame here. Funny how, 15 years later, there still isn't a competing language/UI builder that can measure up. Xcode + Interface Builder, for example, is a joke compared to Delphi. The first time I used IB, I remember being horrified by how IB requires you to "connect" UI elements to variables, and how it can't even create those variables for you, let alone allow you to add event handlers.
- chadcmulligan 11y agoI was so pleased when I could write my Delphi code on iOS/osx and android as well and could abandon the horribleness that is IB.
- mistermann 11y agoI'm curious if you're familiar enough with other more modern languages and platforms to give an opinion on the relative efficiency of Delphi compared to some of the others? As someone who used to build lots of apps in MS Access (which is similar to Delphi but not as good), I find it takes far longer to build things with modern platforms, although you have much more capabilities.
- ams6110 11y agoMost of my web programming these days is in PHP. It gets the job done, it's easy to use and deploy, and I don't need anything more for the scale and complexity of what I'm doing. It's been around for a long time and doesn't seem to have a risk of going away anytime soon. SQL databases. All of the above applies. Stored procedures when the database supports them. I do not use an ORM. I try to use command-line utilites whenever I need to manipulate data. sed, awk, grep, etc. I rarely need to drop into a scripting language for these tasks.
- thrownear 11y ago>It gets the job done This sounds like other similar language will not get the job done. The truth is that there are much better alternatives which are a lot more pleasant to use and will get the job done in a much better way. > it's easy to use This is a myth. Php is not easy to use. May be, It is easy to start. But you need to know a lot of useless stuff (outside the context of Php), to get anything to work any where near reliably. Also, be prepared to write a lot more automated tests if you want to keep it that way.
- V-2 11y agoTo quote the classical piece on the subject ("PHP: a fractal of bad design"): There is a whole lot of action at a distance. Consider this code, taken from the PHP docs somewhere. There is a whole lot of action at a distance. Consider this code, taken from the PHP docs somewhere: @fopen('http://example.com/not-existing-file', 'r'); What will it do? If PHP was compiled with --disable-url-fopen-wrapper, it won’t work. (Docs don’t say what “won’t work” means; returns null, throws exception?) Note that this flag was removed in PHP 5.2.5. If allow_url_fopen is disabled in php.ini, this still won’t work. (How? No idea.) Because of the @, the warning about the non-existent file won’t be printed. But it will be printed if scream.enabled is set in php.ini. Or if scream.enabled is set manually with ini_set. But not if the right error_reporting level isn’t set. If it is printed, exactly where it goes depends on display_errors, again in php.ini. Or ini_set. etc. :) (Perhaps this particular issue is obsolete now, still it's emblematic of problems underlying the language, the ones I had to encounter when I worked with PHP few years back. Talk about "easy to use")
- drelihan 11y agoPerl and C here mostly. C89, that is. Both are widely used languages, just not in the startup space. a lot of our stuff is built on those languages so it wouldn't make sense to rewrite a lot of the stuff at this point unless there was a business case for it.
- kluck 11y agoMy personal favourite combination as well! Don't care about if its old-fashioned or what other people think about Perl and C. To me, a programmer should start learning C then work his/her way up!
- ukoms 11y agoSo I'm not alone :) Perl and C everyday ;)
- joosters 11y agoPerl and C++ here. You are making me feel modern and up to date :-)
- avifreedman 11y agoMe too, Perl most days, C most weeks.
- bsharitt 11y agoI'm mostly a sysadmin so Perl is a big part of my life whether I like it or not, but not much C.
- mangamadaiyan 11y agoC in my day job.
- ehudla 11y agoThere's a huge difference between languages that are no longer fashionable, call them old-fashioned, and languages that never had wide following, if any, call them niche languages. Most of the languages you mention were never mainstream production languages, for good reasons.
- kwhitefoot 11y agoYou are surely joking. Do you really mean to say that Cobol is not a mainstream language? Are you claiming that banks and similar institutions are niches? If that is the case then pretty much all programming languages are niche languages.
- ehudla 11y agoI am claiming SNOBOL, Icon and Eiffel aren't, for example.
- antirez 11y agoC and Tcl. You have to resort to things like COBOL to have chances to compete.
- ctdonath 11y agoThere's lots of job openings out there for COBOL coders. Nobody wants to learn it, and those who know it are dying off.
- Gaessaki 11y agoAs a young developer, do you know where and how I could go about getting into the COBOL industry? All the job listings seem to require a decade's worth of experience and lists expertise requirements in technologies that are proprietary and only available on a mainframe. COBOL on its own is not very hard to pick up, but I'm lost as to how to learn about the ancillary technologies. I'm not sure it's so much that nobody wants to learn, but that nobody knows where to learn it.
- ctdonath 11y agoContact the companies looking for COBOL coders. They're desperate, and will tell you exactly what you need to learn and probably pay for any training you need. Sure they'd prefer someone with a decade or five of experience, but seriously: COBOL coders are literally dying off at this point. 17 years ago was the last great hurrah for hiring & training COBOL developers, averting the "Y2K crisis" before calendars ticked over to the year 2000; we've got kids born after that who are entering the software workforce now. About 5 years ago I had someone speak in my C++ class begging students to consider a career in "mainframe" technologies; there was virtually no interest shown, and methinks most of the students didn't even know what he was talking about. But...the need remains. Those systems are so large & profitable they're not going anywhere, and employers must be quite willing to take on new coders willing to learn, directing & funding their education as needed. If you're interested, contact a hiring company directly and ask - even if you have 0 of 10 years required experience.
- wfn 11y agoI wonder, are there any good tools for translating COBOL into something else? There must be at least some demand? Wouldn't that be a good approach in some cases? (I suppose it requires longer-term thinking, and is sometimes simply not possible in a business context, etc.)
- auxym 11y agoThe only language I use these days at work is Tcl, as it's the embedded scripting language in the app we use for post-processing finite element analysis [1] results. Thus I use it for small scripts to make various data extraction and processing faster. It's main strength is also it's main weakness: the whole everything is a string concept, even code. It makes the language both very simple to grasp at first and then also very powerful. It makes lisp-like macros and meta-programming possible. However, it quickly seems to turn into a big ball of mud. Lack of first-class functions or OO is a major pain point, too. Objects have to be emulated by procs (ie functions), and procs are always in the global scope (there is namespacing but it's quite unwieldy). I wouldn't care that much, except the App's API is an object model, which means even a small script turns into 50 lines of only handle-getting and releasing. Make a small error and forget to release a handle (ie a proc name) and now you have to restart the interpreter (or write a lot of error handling script, which once again for small scripts is a pain). Also, you can't pass objects around by value as they are procs, only by name, which is also a pain. [1] Numerical method often used by engineers to solve various physical problems modelled by boundary-value PDEs. https://en.wikipedia.org/wiki/Finite_element_method https://en.wikipedia.org/wiki/Finite_element_method
- jhallenworld 11y agoTCL became the standard embedded language for many EDA tools. I really hate it: it's difficult to use and slow. On the other hand, tcltk made it a convenient GUI language.
- innertracks 11y agoTCL/EXPECT was a huge help when I needed tp automate data extraction from a health clinic practice management system. The available interfaces didn't give all the data. Decoding the custom data formats, file layouts, etc... wasn't going well. Scripting the character based UI with TCL/EXPECT was pretty cool including the error handling. If a bit hacky. I was surprised to find out my temporary solution was still running without a hiccup 5 years after I left. Yes, I was younger then and hadn't learn to appreciate the life expectancy of temporary solutions.
- qewrffewqwfqew 11y ago
- 0XAFFE 11y agoDelphi Developer here. Still using it at work and there is still Development in it.
- ketzu 11y agoDelphi was the first language I learned and I always thought it was a teaching language. What are you developing in delphi?
- 0XAFFE 11y agoFull blown ERP with postgresql. Its super fast, as it is a native windows application and thats what our customers like about it. Also with nice components like devexpress its looking realy good, has high usability and is easy to develop.
- mistermann 11y agoI'd love to see some screenshots of a modern Delphi application if that's possible?
- 0XAFFE 11y agoHave a look here: https://www.devexpress.com/Products/VCL/ https://www.devexpress.com/Products/VCL/ Especialy their datagrid is the most advanced and fun thing to work with.
- baobrien 11y agoI'm pretty sure Altium Designer, a decent and pricey EDA suite, is written mostly in Delphi.
- jerryr 11y agoYeah, I believe it is too. And its primary scripting language is still DelphiScript. We use it daily at my company.
- 11y ago
- deleted 11y ago[deleted]
- Muted 11y agoThough I haven't used it in the last few months, Fortran (2003) is my language of choice for math related stuff. I used it for the first time about 5 years ago and haven't found a single reason why I'd use C/C++ instead. It offers OOP, dynamic memory, easy array manipulation, no need for pointers, ...
- jhallenworld 11y agoI've been working on emulators (in C), but they allow me to run interesting languages like Turbo Modula-2 and Algol 60 for CP/M or MPL for the Motorola Exorciser: https://github.com/jhallen/cpm https://github.com/jhallen/cpm https://github.com/jhallen/exorsim https://github.com/jhallen/exorsim
- espinchi 11y agoJava and XML. I'm an Android developer.
- qihqi 11y agoThough being mainstream, C++ and Java are probably the most "boring" languages you can use LOL.
- xyzzy4 11y agoI really like PHP.
- thrownear 11y agoWhy? What else have you used?
- frik 11y agoWhy not? It's your fault, if you don't revisit PHP. A lot has changed since PHP3 days. The same goes for MySQL. Yet there are a lot of ill-informed haters. But to each their own. PHP is the dynamic language cousin of C/C++. PHP7 and HHVM are both great and fast.
- V-2 11y agoWhile I'm not particularly keen on revisiting PHP, given the bad taste it left me with, I can believe the language has changed for the better, however programming cultures, like all cultures, are way more inertia-prone, and I'm really sceptical about whether the duct tape mentality I've known PHP devs to exhibit has gone away
- thrownear 11y ago>It's your fault, if you don't revisit PHP. A lot has changed since PHP3 days. Wow. You make a lot of assumptions. I have been using Php until quite recently. I left it at 5.6. I know about 7. But that it is getting additions does not compensate for the fact that the core remains rotten, and is still as dangerous and weird as ever. It does not get much worse than this https://www.reddit.com/r/lolphp/comments/41fqib/it_is_so_simple_in_php_let_me_show_you_mm_no_it/ https://www.reddit.com/r/lolphp/comments/41fqib/it_is_so_sim...
- dwc 11y agoOn a daily basis I work with C and a handful of modern languages. I do reach for Common Lisp and Prolog sometimes, so I'll count those. Common Lisp: many, many great things about lisp have been incorporated into modern languages, but CL still has a few unique things, and the whole is greater than the sum of the parts. It's less compelling than it was 10 years ago but some problems are expressed more wonderfully in CL than in other languages. Prolog: when prolog is the right tool then you really can't beat it. You can substitute another logic language if you like, but I'm not aware of major borrowing by modern languages (the odd library doesn't really count). Things I'm meaning to look into but haven't really used yet: Forth: I poke at forth every couple of years but always leave off to go do something else. I'm pretty sure I don't want to embrace the whole forth philosophy thing (real forth people are, uh, different), and doing a deep dive to see what I can take with me is something I just haven't made time for. Snobol: I'm not really interested in Snobol wholesale at this point, but I want to explore how PEGs are used. There are PEG libraries available for other languages and I'd like to see how much benefit there is to be had from working in a modern language with a PEG library.
- NickFitz 11y agoAlthough I haven't used Forth much since the time I implemented it on the Atari ST and used it for a commercial product, I still like to think of myself as a Forth person. It continues to influence aspects of my programming style, and can be useful to have known well in surprising circumstances; for example, I once solved a thorny problem in some rather complex XSLT by adapting a technique that's quite normal in Forth, but would be considered downright weird in many other languages. So yes, we are different :-)
- i336_ 11y ago> I once solved a thorny problem in some rather complex XSLT by adapting a technique that's quite normal in Forth, but would be considered downright weird in many other languages. I'd be very curious to know what technique you used here. I sort of stumbled on Forth recently, and while I'm not sure if I'll do anything with it, I like the philosophy behind it more than any other language I've yet found.
- djent 11y agoI use Perl for small things. I learned it about two years ago. I like to joke that I was 15 years late learning Perl, and 5 years early learning Go.
- deleted 11y ago[deleted]
- St_Alfonzo 11y agoI use Common Lisp since 2 years now. Here in germany, most of the students I talked to classify CL as an unfashionable language.. I really like the simplicity of the syntax and the stability of the language standard/specification. There will be no "Today we released v2, all your v1 code will be invalid"
- bsharitt 11y agoI'm curious since you mention students, so you may be one as well, but is Common Lisp just a hobby language for you, or do you have a productive professional use?
- St_Alfonzo 11y agoI'm a computer science student and will get my master's degree in October. At the moment Common Lisp is just my hobby language, but also the language in which I invest most of my programming/learning time. I'm able to program in a few mainstream languages, but I want to have one language where I really know the tricks and shortcuts. Getting a job here, where I would program in CL is nearly impossible. So in the next years I'll probably stay in the academic world and then try to do my own startup or freelance stuff with the language(s) I like.
- hatmatrix 11y agoI used to code a lot in Fortran 77, but have been programming in Modern Fortran for the past few years (90, 95... I am not sure which standard I am adhering to exactly). Both of these would also be considered fashionable. Part of the reason is that it's still the standard in chemical engineering and atmospheric science for large-scale simulation where speed is an issue. There has been a long history of compiler optimization and numerical precision before standardized by ANSI C, and because of the simpler language (than C) it's easier for scientists to code up fast programs. Also because of its 1-indexing and array notation, it's easier to translate math to Fortran code. With the recent module system there is a feature like Python's 'from module import *' ('use module') which when people use will make the code hard to follow, but when invoked with 'use module, only: var1, var2, foo, bar', you can make what's imported more explicit. Other than that, I just find it very aesthetically pleasing and makes me very happy to code in it. I have heard they have string processing "as good as C" now, but I haven't used it much.
- jhallenworld 11y agoFortran used to be the standard language available everywhere. This led to weird things like text games and compilers being programmed in it. For example: http://jerz.setonhill.edu/intfic/colossal-cave-adventure-source-code/ http://jerz.setonhill.edu/intfic/colossal-cave-adventure-sou...
- hatmatrix 11y agoGood article describing Fortran's historical dominance: http://arstechnica.com/science/2014/05/scientific-computings-future-can-any-coding-language-top-a-1950s-behemoth/ http://arstechnica.com/science/2014/05/scientific-computings...
- whorleater 11y agoI've been learning Fortran 90/95 for my computational astrophysics class the language is proving itself to be surprisingly modern and capable, there's a lot of quirks coming from C/C++, but it's mostly syntax preferences and nothing huge. It's also very good at most of the problems that I've thrown at it which require high performance computing of some sort.
- crnt2 11y agoI 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 - probably on a par with Julia). I also used KDB+/Q very heavily in a previous job. It is blazing fast in its domain (financial time series) and enables extremely rapid prototyping. The fact that it is a combined query language / programming language is very appealing for data-focused research. I wouldn't want to write a production system in it though (though I know people who have done!) When I was studying for my PhD I wrote a lot of Fortran 77 and IDL. Essentially because my supervisor used IDL and had a lot of code written in it, and because we were using an external tool which consumed Fortran 77 files as input.
- arcanus 11y agoI 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.
- marcell 11y ago> "./" vs. "./" Is this a typo? It seems like two instances of the same thing
- arcanus 11y agoOoops -- './' vs. '/.', e.g. right array vs. left array
- TTPrograms 11y agoIt doesn't seem like '/.' is an operator. Do you mean './' vs '.\'? That tends to match my intuition.
- deusu 11y agoPascal - still use it today. I started with Turbo Pascal 3.0, went through several versions of Borland Pascal (DOS and Windows), several versions of Delphi, and am now using FreePascal. I do most of my work on Linux nowadays. Pascal still gets everything done and after 20+ years I am really fluent in it. Did a little bit of Javascript with Node.js, also looked at Golang. While I did like some aspects of them, there was always the downside of having to learn a whole new ecosystem. Didn't like the dynamic typing of Javascript. Golang looked better for what I do. But in the end I just wrote a small Pascal library to emulate Golang's channels which I really liked, and that was the end of Golang for me. My main project in Pascal is a search-engine: https://deusu.org https://deusu.org Sourcecode for that is on GitHub: https://github.com/MichaelSchoebel/DeuSu https://github.com/MichaelSchoebel/DeuSu So yes, you can (still) do actual stuff in Pascal. Even pretty cutting-edge stuff.
- simonswords82 11y agoHoly cow! I used Pascal at college about 16 years ago. I never thought I would see it used in the wild, especially in 2016. Nicely done!
- inetsee 11y agoI taught Pascal at college about 40 years ago.
- clouddrover 11y agoSome other in the wild examples, the WHATWG has a tool called Wattsi that's written in Object Pascal: https://github.com/whatwg/wattsi https://github.com/whatwg/wattsi Interesting blog post from last year on someone's experiences developing an application in Object Pascal: http://ziotom78.blogspot.com/2015/01/lfi-data-analysis-with-fpc.html http://ziotom78.blogspot.com/2015/01/lfi-data-analysis-with-... Free Pascal itself: http://www.freepascal.org/ http://www.freepascal.org/
- gtirloni 11y agoPretty cool! Ever tried Modula-2 or -3?
- hnur 11y agoI use C as my staple language. Old and always unfashionable, but it's never going away in my lifetime.
- jpindar 11y agoUnfashionable? Maybe in the sense that tshirts and jeans are unfashionable, but are worn daily by most of the people who make our technological civilization possible.
- sycdan 11y agoI use VBA for automating the production of pharmaceutical analytics reports, and have for the past 8 years. It is horrible in so many ways, but as far as I've found has the best support for manipulating the MS Office DOM, which is important because all the pharma reps use Excel/PowerPoint for everything and tend to have very specific nit-picky needs regarding their custom reports.
- mistermann 11y agoHave you ever investigated writing your code for office automation using C#? It takes a little bit to get it figured out, but being able to get away from VBA is worth it I think.
- cmrx64 11y agoOr VB.NET, which is also a very nice language.
- hitekker 11y agoMy dad uses and has used BASIC. He's not a teacher, nor a hobbyist. He writes bank software. In BASIC. For forty years. At the same company. UBS, Bank of China, and other names all run this massive million(s)-line BASIC codebase, that he almost singlehandedly wrote, on minicomputers[1] powered by OpenVMS. With it, according to my father, they process billion dollars worth of transactions and other facets of their business. Every day. Surprisingly for enterprise software, his customers love it. They are only being forced to move to a completely new system since HP went and deprecated their entire minicomputer line. Given this and other parts of the story-- perhaps better saved for a blog post-- I've always seen him as my 10x engineer. [1] https://en.wikipedia.org/wiki/Minicomputer https://en.wikipedia.org/wiki/Minicomputer, just so we're all on the same page.
- V-2 11y ago"He writes bank software. In BASIC. For forty years. At the same company" I would have gone insane :)
- jmnicolas 11y agoHe didn't say his father was still sane ;-)
- V-2 11y agoTrue... No disrespect, but I wouldn't be surprised if the company hasn't actually existed for 20 years already ;))
- hitekker 11y agoI had a good laugh at your comment and the parent's because I think I've said "I would have gone insane.", or "Are you insane?" to him more than a few times. And yet he's more sane than me. He's a funny fellow.
- Hoff 11y agoNot a surprise. There's a lot of that stuff around, on OpenVMS. There are new systems — yes, using BASIC on OpenVMS — being installed, too. There are new Itanium servers with support added last year, another (final) generation is planned, and — in preparation for the end of Itanium — an OpenVMS port to x86-64 is presently underway, and there's a new OpenVMS release (for Itanium) is scheduled to arrive this March. https://vmssoftware.com/products.html https://vmssoftware.com/products.html
- maxaf 11y agoI use JavaScript to develop web applications in the financial sector. The runtime is a rusty bucket held together with duct tape, the language is dangerous and awkward to work with, and the ecosystem is utterly schizophrenic. Still, the money is good, so why not?
- gotofritz 11y agoOh, look, we got a comedian
- maxaf 11y agoUnfortunately I'm absolutely serious. JavaScript is a farcical joke, yet no one's laughing.
- chadcmulligan 11y agotry typescript, if you haven't already, its very nice. Doesn't help with the browser part unfortunately, but at least gets rid of the javascript oddities.
- Klathmon 11y agoWe use a business-basic style language called ProvideX[1] from the mid 80s. 99% of our codebase is GOTOs, GOSUBs, and PERFORMs. It's a mess to deal with. But at the same time, the language has a database layer built in that (while slow) works well enough for our uses, it has a GUI toolkit that works cross platform, and you can run the same GUI panel via a web browser through a shim that the company created. That's the one thing i've never seen anywhere else. I can make a program and GUI, and have it run on windows, linux, osx, and the web without any changes. And the "native" programs can run entirely client side, or they can behave as a "thin client" to a server somewhere, again without any changes. We haven't moved away because moving away would basically mean replacing every single line of code ever written here... But we are slowly replacing it with more modern languages and systems. [1]https://en.wikipedia.org/wiki/ProvideX https://en.wikipedia.org/wiki/ProvideX
- threeseed 11y ago> That's the one thing i've never seen anywhere else Xojo - http://www.xojo.com http://www.xojo.com Originally known as RealBasic it has the ability to output native, cross platform apps from a single codebase. Interesting history.
- leshow 11y ago> I can make a program and GUI, and have it run on windows, linux, osx, and the web without any changes. you should check out electron https://github.com/atom/electron https://github.com/atom/electron
- Klathmon 11y agoI'm actually a web developer at heart, and most of my work here is web related as we move away from this system, but electron is only one part of the equation. There is still the database, the "server side" code, and unless we are going with isometric javascript, the client side code separate from the server side. It's just taking some adjustments from a truly monolithic codebase where everything is in one language, one codebase, one "environment", to splitting it up into smaller parts and API-ifying everything to allow an easier separation. It sounds silly, but even choosing an editor is a task, as providex includes their own IDE! (i'm rooting for atom!)
- jhallenworld 11y agoAnyone use ABAP (language for SAP)? I think you can get paid a lot of money as an ABAP programmer. https://en.wikipedia.org/wiki/ABAP https://en.wikipedia.org/wiki/ABAP
- thanksalot 11y agoI did UC4 stuff for a while. Was pretty fun but making separate applications is often the better idea.
- chadcmulligan 11y agoyou also get paid a lot of money as a truck driver in Syria, there's a reason for that
- whitten 11y agoI use a language originally called MUMPS, with the alternate name of M, which is the core language in Cache Object Script. I use it because it has features that are still not (really) included in more "modern" languages, because it is actively used in niche markets, and because I've used it for 34 years, so I have a lot of experience in it and tools written in it. It is incredibly terse, which allows for use in tight memory situations, and it is high-level enough that the implementor can optimize persistent storage to get speed gains that other languages can only meet by including very low-level code. It has built-in concurrency, again at a high level which allows the implementor a lot of leeway in making things more efficient. As a niche language, it has specialized uses in Medical Computing and in Financial Computing. Its sparse data structures organized around strings of character is very suited to dynamic data (as a NOSQL datastore) and its handling of transaction processing and concurrency allows retractable computation as well as ACID data storage. I am proud to call myself a MUMPSter.
- jhallenworld 11y agoThere 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?
- ratbeard 11y agoOr 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)' :o There was a max file size and filename and function limit of like 6 characters, so things were named pretty cryptically. It had a built in object database and basic array and hash datastructures which were neat though.
- cordite 11y agoI'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.
- pillmuncher 11y agoProlog. It fits my brain.
- tunesmith 11y agoI really suspect Prolog would fit my brain, but I have trouble thinking of real-world scenarios where it would be useful to hack in. Other than the tutorials out there that focus on toy problems, what are some other examples of where Prolog is actually a good technology fit for side projects?
- jghn 11y agoSoftware which includes dependency graphs are a natural fit
- thedanfilter 11y agoDo a google search for: prolog robotics
- deleted 11y ago[deleted]
- drakonka 11y agoI am using PHP for my hobby project. It's "old" but obviously not abandoned and I think it's becoming a bit less ridiculed, but you still see the regular "Ew why PHP"-type remarks and other jokes about the language. I don't use it because of familiarity or comfort (I'm actually quite uncomfortable with it because I know it's easy to fall into traps of horrible practices). The simple answer is that as a kid I loved PHP browser game and envisioned the project I wanted to make for 10 years as a PHP project. I've experimented with using different languages for it, but go back to PHP simply for the sake of nostalgia. I realize this is normally a horrible reason to pick a certain language for a project, but considering it's a pretty quirky long term passion project with no goal of monetization (or even full completion), I think it's reason enough.
- bobby_9x 11y agoFor front-end web projects, I still love using PHP+codeigniter. However, for all back-end tasks, I now use Python. It has so many features that I wish were in PHP and it works well for long-running tasks. Most long-running PHP tasks that I've tried to build, leak random memory. The dev list also scares me and some of the features that have been added to the latest versions are highly questionable.
- dawnbreez 11y agoBash users represent! Seriously, Bash is fucking beautiful once you really dig into it. Pipes are unbelievably elegant.
- josegonzalez 11y agoBash is great - we write almost 100% of dokku in it - but most bash looks like shit on a stick. Really hard to follow sometimes, and unless you are using modern bash, also really hard to ensure your own sanity.
- dawnbreez 11y agoI suspect that part of it is unusual syntax--if...fi, anyone?--and part of it is unusual syntax in non-bash things, i.e., Awk looks like moon runes, and to replace ; with \; in sed you need a grand total of SIX backslashes.
- dllthomas 11y ago> if...fi, anyone? And here I thought everyone wanted ALGOL-like syntax...
- dawnbreez 11y agoAs someone who dabbled in C-like languages, it threw me for a little bit.
- dllthomas 11y agoMy comment was a joke based on contrasting two points: 1) "C-like" languages are often described as having "ALGOL-like" syntax. And indeed, C was based on languages significantly influenced by ALGOL-60 (though ALGOL-60 used BEGIN/END for blocks, not curly braces). 2) "IF/FI", "CASE/ESAC" and similar were in ALGOL-68, and Stephen Bourne drew them from there when he wrote the Bourne shell (with which bash was eventually intended to be compatible).
- andrewvijay 11y agoThe question here is about unfashionable languages and no one here has commented about it yet :D php, tcl, c++, java ?? come on guys.
- whorleater 11y agoPHP/C++/Java may not be the hot new startup language, but I doubt you'll find anyone that says those languages don't have a ton of traction behind them.
- ewindisch 11y agoThere are a couple languages I write code in that are less popular, notably TCL and bash shell. Throughout the 2000's I wrote a lot of Perl, but it's now been a while. Most of my development these days is in Go, Python, or Javascript. TCL is a language that has its problems, but has some really interesting use-cases. TCL is the LUA-before-LUA that is particularly great for constructing REPLs and DSLs. It has a forward-polish notation that can make it easy to construct a shell-like DSL or for processing other forward-polish notation languages and formats (URLs are FPN!) I find bash shell to be the most enjoyable language that I work with. It's actually possible to write good, readable software in shell, but it's absolutely a skill that developers choose not to hone. Shell is something that many find necessarily and few developers really understand. This leads to a lot of bad software and, consequently, a culture against the language. Objectively, there are good reasons why shell might not be good for large applications, but those arguments could be made for more popular languages as well. However, due to the biases against it and the fact that many developers know "just enough to be dangerous", it's not a good language for teams.
- Rockslide 11y agoSmalltalk! I got in touch with it in university and I love it. I'm convinced it is the best OO language there is, and generally one of the best general purpose languages (and environments!) ever invented. I even had the luck to be able to use it on my last job (VisualWorks), but unfortunately I no longer have that job :(
- marshray 11y agoI tried Smalltalk recently, but I couldn't get into it: 1. The (basically mandatory) UI was keyboard unfriendly 2. They removed multiple inheritance from the language. That's not still Smalltalk, is it?
- gnaritas 11y agoUm, Smalltalk doesn't have multiple inheritance, isn't supposed to.
- Rockslide 11y agoAs far as I know, Smalltalk never had "real" multiple inheritance, but merely an experimental hack implementation around doesNotUnderstand (cf. http://c2.com/cgi/wiki?MultipleInheritanceInSmalltalk http://c2.com/cgi/wiki?MultipleInheritanceInSmalltalk ). So I wouldn't agree to the sentiment that it has been removed from the language, but I'm too young to judge how essential it once was. Personally, I don't miss it at all. Which Smalltalk did you try exactly? There are huge differences between the UIs, and e.g. GNU Smalltalk doesn't have a UI at all.
- true_religion 11y agoDidn't it have traits?
- gnaritas 11y agoIt is the best OO language there is, it is after all the original OO language. Everything else is a poor copy.
- _nato_ 11y agoI use Erlang/OTP as my go-to language. The flack about its ugly syntax certainly puts Erlang in the unfashionable camp. But unjustly. I use it because I like single assignment of variables, pattern-matching, and I also think FP is pretty swell. Someone said recently that the Erlang community could be as small as one-thousand serious hackers. Now that's relatively small!
- cdelsolar 11y ago1000? That's insanely small! Especially for the amount of tools there are for it.. is it all developed by a small subset of these 1000? I've read there are about 18-19 million programmers in the world, which also seems like a pretty small number, but it seems like enough to have created everything we have that uses software.
- sotojuan 11y agoErlang/OTP is becoming fashionable again thanks to Elixir :-).
- eggy 11y agoAnd LFE, Lisp Flavored Erlang brings the BEAM and OTP to Lispers! I play with LFE, so I can not say I use it, but it fits your unfashionable descriptor.
- woodruffw 11y agoI use Awk fairly regularly, in the form of actual scripts (not just expressions passed on the command line). Despite its age, it's still extremely powerful and usually very pleasant to read and write. Gawk adds socket support, so writing network scripts is usually painless. I've also been known to write Perl (5) and Tcl programs, but significantly less often nowadays.
- oskarth 11y agoDo you have some examples of network scripts written in Gawk? Particularly something that you'd prefer to write in Gawk rather than in a more "general-purpose" language. Would be interesting to see.
- woodruffw 11y agoHmm...I haven't published many of my Gawk scripts, but here's a simple little IRC bot using Gawk sockets: http://woodruffw.us/snippets#awkbot http://woodruffw.us/snippets#awkbot The general procedure for using a Gawk socket is just building a string of the form `/inet/tcp/0/example.com/80` (example.com, port 80) and redirecting to/from it as a coprocess with `|&`.
- chucky_z 11y agoCheck this out, I think you'll be impressed! https://www.gnu.org/software/gawk/manual/gawkinet/gawkinet.html#Simple-Server https://www.gnu.org/software/gawk/manual/gawkinet/gawkinet.h... (If you want it to fully function you'll need bits of code starting here -- https://www.gnu.org/software/gawk/manual/gawkinet/gawkinet.html#Primitive-Service https://www.gnu.org/software/gawk/manual/gawkinet/gawkinet.h...)
- AstroJetson 11y agoAdd me to the list of people that use Awk. It's my goto language for programs of less than 100 lines. I can do a lot in 100 lines. I've only used GAWK's network support a few times, mostly to write data collection on a set of boxes and then ship them to a central box for data presentation. For text data processing it's really hard to beat AWK.
- SwellJoe 11y agoI predominantly work in Perl 5, which probably isn't quite to the point of being something one can write off completely as out of the spotlight. And, I'm launching a new thing soon which, despite having looked at a number of alternatives, will likely also be in Perl. Familiarity and a big ecosystem that I'm already familiar with is a pretty big win. I happen to work in the systems management space, which was long dominated by Perl (Python ate into that space starting a decade or so ago, and Go is now making significant inroads, but Perl is still pretty common), so the libraries are very strong. I may end up writing the prototype in Perl just to get it launched, and then rewrite the parallel parts in Go. It is an embarrassingly parallelizable problem, so Go or another language very good at concurrency would be reasonable. But, I find that learning a new language and tackling a new problem space at the same time is challenging. The front end will always be JavaScript, though. Probably with React. And, I've been working in PHP a bunch lately, because our website runs on Drupal. I would never use PHP except to get access to the massive piles of existing functionality out there already in PHP. But, nonetheless that makes a pretty compelling case for using PHP. And, maybe PHP is still popular enough to not fall into this category. Heck it may even be growing, given the popularity of WordPress, I dunno.
- RhodesianHunter 11y agoAs long as you get to use PHP 7 and one of the more modern frameworks modern PHP is actually quite pleasant to work with.
- arc0re 11y agoC and elisp most of the time. I'm considered the weirdo in my classroom, all those cool kids that learned with Visual Studio and fancy C#.
- Fizzadar 11y agoBash. I'm obsessed - so much so that I'll solve more complex problems taking 3x time rather than falling back to Python. And then there's bash one-liners, they're the best!
- m0nty 11y agoI too love bash. It's always there. It has no dependencies. It works.
- paulddraper 11y agoIt has a dependency on the bash runtime. And coreutils. And often moreutils, or various others.
- lmedinas 11y agoOften with better performance than Python or Perl
- cms07 11y agoI don't think that's true with Perl at least, unless something has changed dramatically very recently.
- hrez 11y agoIf you use it to glue/pipe bunch of tools written in C it can easily be faster.
- paulddraper 11y agoThat's one recommend approach towards Python. E.g. numpy. The other approach is pure Python and then using PyPy's JIT.
- lmedinas 11y ago
- Semiapies 11y agoI still support websites I previously wrote in CFML, aka ColdFusion. It was much nicer to work with than the alternatives on Windows, many years back, and it running atop Java since version 6 often turned out to be handy. It wasn't a bad way to bash out a website, and with some care, you could build decent stuff with it. Still, it's a loosely-typed (except when it isn't) language that exists in two forms - tag-based and Algol-ish (within <CFSCRIPT> tags) - and it carries a lot of Java-derived complexity in is API while not being as flexible as even JavaScript. Lately, I've been using Python and Flask to build sites in, which is far nicer.
- harel 11y agoAlthough 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.
- Semiapies 11y agoHate 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.
- harel 11y agoI know. We actually rebuilt it from scratch and the first version will be ready soon. Redone from the ground up and fitting to the year we live in. So there is no real compelling reason to change anything in the ColdFusion version.
- bdcravens 11y agoTo be fair, Lucee (formerly Railo) is a great open-source implementation of CFML.
- mwpmaybe 11y agoColdFusion was a breath of fresh air in the mid-to-late '90s when the predominant technologies were CGI/Perl and ASP/VBScript (pre-.NET). I used to love showing other programmers e.g. "Here's how you create a database connection, execute a query, and iterate through a recordset in ASP (40 lines of opaque nonsense)... and here's how you do it in ColdFusion (cfquery, cfloop)." It enabled us to quickly deliver a lot of intranets and e-commerce sites for our customers, but man oh man did it require a lot of server hardware to run (at the time), and it was expensive as heck!
- evanwolf 11y agoAnyone using Simula, APL, PL-1?
- RBerenguel 11y agoAPL for fun, not profit here.
- MageSlayer 11y agoDyalog APL boasts a great IDE and really clever guys behind it. It is a real pleasure work with it.
- graycat 11y agoThe 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.
- 8note 11y agoI write with lingo now and then, when I want to quickly try out some game mechanic idea
- abathur 11y agoI admin/dev on an old LDMud, which means the "game" is written in LPC: https://en.wikipedia.org/wiki/LPC_(programming_language) 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.
- tunesmith 11y agoMan, I loved LPMuds back in the day. I remember being so impressed when I (my character) was sitting around in a pub with a friend, and all of a sudden he put on a hockey mask, whipped out a chainsaw, cut off my arm, and started beating me on the head with it. And I actually couldn't do anything that required me using my arm. Apparently he coded that whole thing up while we were sitting in the pub.
- MaxLeiter 11y agoI primarily play with z80 asm and C89 atm, so I guess that's pretty unfashionable today
- thorin 11y agoMost of my programming has been done in pl/sql. It's still the best language for interacting with a relational db I've seen. I've just started using c# and when I pick up some more linq I think I might like it. I also program in javascript, java and c is just that plsql has been the best way to get stuff done for me working with enterprise db apps since the late 90s.
- bollockitis 11y agoFor the past year I have been working in PL/SQL it's like being on a different planet. The language is clunky and difficult to work with. The culture is weird (everyone uses TFS for version control, for example, if they use a VCS at all). The tooling is awful. No parser is available, meaning linters are only included in bulky GUI apps (TOAD is the worst, most unusable piece of software that I still use on a daily basis). I have resorted to Emacs and SQL*Plus but even Emacs has poor support for PL/SQL. No one wants to write open source tools for a proprietary language. PL/SQL is definitely not sexy, but it's undoubtedly the best way to interact with an Oracle DB and the raw power is amazing. I have accomplished some incredible things with it, but I can't help but feel like everything I do is already out of date and needs to be replaced with something better. Any tips for making my experience a little more pleasant?
- cafard 11y agoI used to use Emacs and SQL&*Plus, but after trying SQL Developer have stuck with that.
- thorin 11y agoThere's nothing stopping you from using version control and having an automated build and unit tests. We always have everywhere I've worked before. Check out steve fuerenstein's books and websites for more modern ways of working with pl/sql http://www.stevenfeuerstein.com/ http://www.stevenfeuerstein.com/ I've normally worked with pl/sql developer which has some great tools-lint, beautifier,templates,import export data generation etc. There are a few good open source libraries eg pl/json but you have to look around. You can always easily call out to java or c if you want to work with other libraries.
- smartmic 11y agoUsing an 'unfashionable' language is similar to other areas in life where one rejects mainstream or too modern things for obvious reasons: - Be different. - Use something which is extraordinarily suited or especially made for your task at hand (in other words: do not compromise). - Maturity and stability is great. Please add more. The analogies are manifold. I really like modern re-implementations of well proven languages (Clojure <- Lisp, Factor <- Forth, ...)
- allbody 11y agoAs someone fairly new to programming I don't understand what makes modern implementation of Lisp like Clojure better than its ancestor. I like Scheme because it's ridiculously flexible. You can implement as many libraries of your own as you want with Scheme which I doubt can easily be done in something like C++. To me Clojure is an overdesigned and rigid version of Lisp. Why is that considered good? Since I am new to all this I might be missing something so I'd love if someone could ELI5 it to me. Thanks.
- calibraxis 11y agoNaturally, other Lisps have advantages over Clojure, but here's a few advantages of Clojure. You might also want to check out this interview: (http://codequarterly.com/2011/rich-hickey/ http://codequarterly.com/2011/rich-hickey/) * Enormous reach: access to both Java and Javascript ecosystems. (If you count ClojureScript. I don't know how Clojure CLR for .NET). * Immutability by default. When you want state, its primitives help with concurrency. * A good set of basic data structures, including lazy sequences.
- api 11y agoI write a lot of C and C++. Considered Java for a recent Web api backend project but went with node in the end due to the richness of available libraries, somewhat quicker development for simpler things, and lower cognitive load from same language on both sides. I still sort of prefer strongly typed languages though. I hate the idea of bugs at runtime that a compiler might have caught.
- goerz 11y agoI've been using Fortran 90/95 extensively over the last few years, for numerical simulation of quantum systems. I think there's a lot of misconceptions about Fortran (which is partly due to Fortran 77, with its punchcard format and spaghetti code). Fortran 90 is basically a different language, and is actually reasonably modern. I see it as significantly more suitable for numerical programming than C/C++. Fortran is conceptually much simpler than C. Having multi-dimensional arrays at the core of the language and not having to deal with pointers makes it much harder to shoot yourself in the foot, and yields more robust and easier to read code. Also, Fortran beats any other language (including C) in terms of speed. I would not recommend using it outside of numerical applications, but in its niche, it's pretty much perfect. For more high-level tasks I mostly use Python.
- tfgg 11y agoI also worked on a quantum (DFT) code in Fortran 95. I agree on your points, once you get used to it, it's basically isomorphic to C but with better numerical support. Compared to C++ it's verbose but understandable and with little magic, which is an advantage when working on a team, similar to Java. Main disadvantages I found were rubbish string and IO handling, no standard library of algorithms/data structures (lists, sort, etc.), and (in my codebase) there was still a bit too much reliance on global variables. Most of those are effectively fixed as the high-level controlling code is moved to Python and the F95 code is libraryized.
- m_mueller 11y ago> Most of those are effectively fixed as the high-level controlling code is moved to Python and the F95 code is libraryized. That's exactly how I think high performance numerical code should be structured like. Unfortunately this thinking hasn't quite arrived in the Fortran world yet where most don't really think about a two-language-approach.
- mmarx 11y agoFirst-year students in our maths curriculum here are still taught Fortran 95. > not having to deal with pointers There are pointers in Fortran, though. It's the absence of things like pointer arithmetic that makes them much safer to use.
- aikah 11y agosome use PROLOG at work. If anybody know a serious modern replacement here, i'm listening. Yeah we could go with 50 different DSLs written in Java, but why reinvent the wheel ? That stuff works and it's powerful.
- alblue 11y agoProlog isn't an acronym in the same way as, say, BASIC or COBOL, and do it shouldn't be capitalised. It's a contraction of "programming in logic" (although the original came from the French name, which has the same contraction).
- jghn 11y agoWhy do you need a replacement? Depending on what you're doing datalog might work for your needs, which has implementations/libraries in a multitude of languages
- dwarman 11y agoIn my professional life, C wih occasional forays into ASM (my niche is embedded DSP which itself is inside a larger embedded system). In my side projects, C, FORTH, and Lua. All at the same time, in the same build.
- gnaritas 11y agoI use Smalltalk. It's what OO languages should be, and what keeps me using it is that the language is the library and I can extend it any way I wish to suite whatever problem I need to solve and I can do it live, tinkering, in a live environment.
- cyberferret 11y agoI've been using Clarion since back in the late 1980's (when it ran on DOS). Still using it to this day, and it earns me the majority of my revenues in my company. Wiki link: https://en.wikipedia.org/wiki/Clarion_(programming_language) https://en.wikipedia.org/wiki/Clarion_(programming_language) The language itself is an amalgamation of COBOL, Pascal and C. But for me, the biggest advantage was the development environment. It was the first IDE that I came across back then that allowed a separation of the back end database from the actual front end code. I loved how easy it was to build applications using dBase, SQL, Btrieve etc. as the back end data store. Also loved how the business logic was defined in a 'dictionary' so that validation rules etc. could be centrally controlled. Still haven't seen a modern day framework that allowed this much control and flexibility. Clarion has had its ups and downs, but I think I will be still writing code in it until I retire...
- spdustin 11y agoWow, Clarion. In my younger days, I helped write a Clarion app to help homeowners insurance agencies electronically rate new policies after Florida re-wrote it's insurance underwriting rules to force everyone to follow the same formulas. Was pretty popular, though my contributions were fairly minor. I wonder how many Bernoulli cartridges are still kicking around with that old code...
- stephencanon 11y agoI write assembly (arm and intel) almost every day, though I write glue code in C and use python for autogeneration of very regular code.
- sahhhm 11y agoHave worked with COBOL on a mainframe for a large bank in NYC for the past four years. A very stable and critical application, it's nice to work with a group of established and proven people who value a work life balance. A bit bummed that a lot of the mainframe is locked down or controlled by the mainframe systems folks run by the global tech team. Overall a positive experience with all the business domain exposure, but finding it increasingly hard to remain relevant and move to new opportunities...
- rubiquity 11y agoI've recently fallen for Standard ML. It's been a steep learning curve due to all the compilers and implementation choices but what a mind bending approach to software development. OCaml seems to be the obvious next step but I'm having fun with toy programs in Standard ML right now.
- cmrx64 11y agoWhat do you find mind bending about software development in SML?
- rubiquity 11y agoComing from dynamic languages I find Standard ML to offer a much more methodical approach to designing software. The view that SML brings is that your program is a language of its own and the Algebraic Data Types you define are your program's syntax. I find the type system to be easy to work with (unlike C, C++, Java) and I'm finally seeing the virtues of a static typed language. Also, having to specify types while defining functions forces me to think more in a good way. It's a far more methodical approach than I'm used to in Ruby for example.
- cmrx64 11y agoCool, thanks for sharing your viewpoint! I also very much enjoy SML and SML-like languages :)
- akavel 11y agoI've used Yeti[1][2] to write an Android app for personal use (on Nook Touch) that I couldn't force myself to write in Java. It made the task much more fun for me and allowed me to finish after I got a serious case of "author's block" trying to code it in Java. Yeti is ML-like and runs on JVM 1.4+ [1] http://dot.planet.ee/yeti/intro.html http://dot.planet.ee/yeti/intro.html [2] http://mth.github.io/yeti/ http://mth.github.io/yeti/
- networked 11y agoNow this is interesting to me! I found Yeti last year when looking for a practical strict ML in which to write a small utility. It didn't fit my requirements at the time due to the JVM dependency but I made a note to try it later for some JVM task. I see that it has had a new release since, which makes me want to try it more still. Could you share a little more feedback about what using the language was like? Did you like it overall? If you've used Standard ML or OCaml (OCaml-Java), how would you say it compares?
- akavel 11y agoAs I wrote above: "It made the task much more fun for me and allowed me to finish after I got a serious case of "author's block" trying to code it in Java." In other words, I did like it! :) I haven't used SML nor OCaml. [Though I seem to believe I prefer SML over OCaml in terms of visual appeal/readability, FWIW.] I wanted to code for Android, and OCaml-Java requires too new a JVM (from what I understand, Android is stuck with JVM 1.4 [or 1.5?]) IIUC. Before I found Yeti, I tried to use Kawa (a Scheme/LISP for JVM), but it worked too flakily for me, unfortunately. Then I found Yeti; I stumbled into one bug at some point, but the author quickly fixed it, and I didn't have any problems since then! And it's typed, so a plus vs. Scheme. edit: you can view my code at: https://github.com/akavel/bookshelf/tree/main/src/com/akavel https://github.com/akavel/bookshelf/tree/main/src/com/akavel -- but please note I didn't care to make it pretty or documented! edit 2: also, I liked Yeti's manual & documentation very much.
- networked 11y agoThanks for the details and for the source code link! Funny that you mention Kawa: I've been meaning to try it out along with Yeti. That you had problems with it does not sound very encouraging, but then, it has had a major version release since. When it comes to ML, I prefer SML to OCaml. I think Yeti, Standard ML and Scheme appeal to the same "small core language" mentality. If you decide to give SML a go, I'd recommend SML/NJ for development and as your REPL — especially while you are getting used to the language since it has better error messages — and MLton for production binaries.
- noonespecial 11y agoLots of pascal via Delphi/Lazarus. Many old industrial systems still run on windows 2000 and have delphi frontends.
- deleted 11y ago[deleted]
- wangii 11y agoA close friend still uses Fox Pro to do data analysis sort of work in a trading company. Every time I see him working masterfully, I feel I should learn it someday.
- fallinghawks 11y agoI used Foxpro for about 15 years, until 2011 when I got laid off from that job. At one point I experimented with MS-SQL and came close to sacrificing the CDs on a funereal pyre because it was just. so. horrendously. slow. compared to Foxpro. VFP had a slick little way of letting you indirectly address variables and pop them into a SQL statement or other VFP code, and they would evaluate at runtime. Later when I was learning Java & Javascript I was quite annoyed that I was not able to do this.
- lmedinas 11y agoI'm surprised you didn't mentioned Fortran as i don't consider it an "unfashionable" language but it's old and still used a lot in scientific work for Maths and Physics areas. The biggest reason is the performance, portability and the code already written some time ago.
- Pamar 11y agoI worked a lot on a legacy system developed in Progress ABL (formerly unknown as Progress 4GL). I am still working on that system, but I am mostly an analyst now and don't really write code (only short scripts to extract data). We still use it because a core application has been developed in it for the last 20 years, and replacing it with something else is currently unfeasible. It's a sort of PL/SQL for a non-relational DBMS. It recently (last 5 years?) got OO extension - the product is still used/mantained/extended. To be honest, I doubt that "we could learn" much from it. I mean "RDBMS were not just a fad, after all" is not something we need to learn, right? (and no, it's not part of the NOSQL family, it is just old and odd). Some other lessons we don't really need to learn now are, off the top of my head: - I think we don't really need foreign keys, folks - What about something like a virtual table that only exists in memory but which allows you to optionally revert any changes on it by doing a rollback? (except that if you do that you also rollback any changes to the real tables, of course) - Views are just a passing fad, also, foreign keys are for sissies - data integrity is done in your application. - You know what? we could do query optimization at compile time instead of at runtime, it will be easier for us to write the query planner, even if this also mean that if you add an index later you have to recompile everything. - You keep harping on this concept of foreign keys. Listen, just use a strict name convention for fields and things will sort fall in piec... I mean in place by themselves. - Function/Procedure signatures are not really hard enforced so... if you have a function with 23 parameters and you call it with 22 (or 24) it will bomb at runtime because the compiler will not warn you. - Speaking of signatures... we all know that dates are really an epoch plus a real, no? So I think it's sorta ok if you pass a number to a procedure that has a date as input parameter... Some of the points mentioned above might have been mitigated in the more current version (or will be in the next one) except for the foreign indexes because those will stay like that forever (officially declared in their roadmap 2 months ago).
- anthk 11y agoPerl6
- spdegabrielle 11y agoWhere is the line between emerging and unfashionable ? Where is Ruby, D,go, Rust, Objective C, swift, ASP & Node? Edit Go too.
- orionblastar 11y agoI used to make a living programming in Visual BASIC and ASP before the Dotnet era had changed them. I have a Windows XP Virtual machine with Visual BASIC 6.0 on it and IIS with ASP 3.0 on it. I wrote a few sample programs in VB 6.0 and ASP 3.0 but I don't have any clients to develop for it. I call it legacy programming to write for older languages. The problem is the people and businesses using the older technology cannot afford to upgrade to the latest technology and cannot afford to hire a programmer to write software for them. I also heard that NASA uses older computers like old 8088/8086 PC clones because of the legacy software they have that runs on it that won't run on modern systems. They buy them from eBay because they aren't made anymore. Ironic that they could use a virtual machine with DOS on it emulating an 8088 to run the software, but I guess they need access to the serial and parallel ports that don't exist on modern systems since USB replaced them.
- cmdrfred 11y agoI maintain a code base at a multinational bank written in Brainfuck. Just kidding.
- ferdamravenec 11y agoDo you use the video gestural interpreter input option https://vimeo.com/7133810 https://vimeo.com/7133810 ? It really helps keep you in good shape. Kind of a "Code Code Revolution!"
- treenyc 11y agoNot exactly a programming language, but some early mac users would know: 4D - 4th Dimension
- matt_morgan 11y agoStill using it??? I built stuff in it about 89-90 ...
- _aarti 11y agoI use Lua. It's super light-weight, very easy to get started, and not a lot of ceremony( concise language) and has good integration with C libraries
- tomhoward 11y agoIn the past 18 months I've been back working with my father, building web and mobile apps to interact with hardware devices used for for data logging in agricultural and environmental research applications. He's been building these kinds of devices for almost 35 years; he basically built his business (and supported our family) on the back of Motorola 6800-series microprocessors, and now uses the Freescale S08 series, which is descended directly from the 6800 (8-bit, von Neumann architecture). To this day, he codes everything in Motorola/Freescale assembly language. In his mind, it's the only way to keep his code adequately lean, efficient and maintainable. He's never been interested in C, as he thinks (from observing younger engineers using it) it just gets in the way. And while the coding and debugging process seems very painstaking, the results are excellent. His devices sit out in the field taking hourly readings for months or years at a time, never failing and going for over 12 months per battery change. Initially I thought he was just stuck in the past and that his refusal to embrace more modern hardware platforms and higher-level languages was a disadvantage. But now I see how reliably and efficiently his devices work, and how inexpensive the components are (the microprocessors we use cost just a few dollars each), I see it as a huge advantage over our competitors, whose products are much more costly to manufacture, much more power-hungry and less reliable.
- swalsh 11y agoI have this theory that if moores law stagnets for a while, and we can no longer count on hardware getting exponentially cheaper and/or faster, software is going to start competing by using either leaner languages, or better techniques. I think a lot of our (mis)use of hardware is simply because computing power is so cheap we can waste it.
- qewrffewqwfqew 11y agoPower budgets for software are already a thing that exists. It's not just about stuff getting cheaper and faster -- portable/battery-powered devices are becoming increasingly important. So you're right, but not only for the reason that you think you're right :-)
- qewrffewqwfqew 11y agoI make business desktop software in Tcl/Tk. That it keeps me out of the hype cycle is gratifying, but it's also a damn well engineered and productive environment (I could go on for hours ...).
- wanda 11y agoI started out with Perl and I still occasionally use it today. There's nothing I especially like about Perl that other languages cannot do just as well, or even better, but at the time I started using it, it seemed pretty powerful. It's still a formidable language and a viable means to build a solution for some problems—provided you don't have to collaborate with anyone. It's hard to find people willing to work with Perl these days, at least where I'm based. I also help maintain some web applications built with VB.NET interfacing with IBM AS-400 and iSeries midrange servers. Which means some RPG coding as well. Can't say I enjoy that too much, pretty dull, but RPG is straightforward enough. Basically, I work with VB.NET because it's not my code and there would be little advantage to converting it to be in C#. Very much a "if it ain't broke, don't fix it" situation since the clients depend on uninterrupted service. I mostly work with—and prefer to use—C# and JavaScript these days.
- WorksOfBarry 11y agoYou are the only person in this thread to mention RPG. :-)
- igivanov 11y agoI still actively use Pascal/Delphi 5. I wrote a lot of software in it for the company and I'd say the bosses are quite happy about it and couldn't care less that it's not something "mainstream". Looking back I can't imagine that it could have been possible to achieve with VC++ 6 or VB. Edit: of course it's not just the language, it's the whole Delphi environment with a variety of components and libraries and the development community.
- trentmb 11y agoPHP keeps a roof over my head, the heat on, and food in my belly.
- gravypod 11y agoI use Java, many people here would probably say it is 'unfashionable' but I have never found a task--within reason--that Java couldn't provide a decent solution for. When you understand the JVM and some of the choices that have been made Java is very fun to use.
- typon 11y agoIm in the EDA industry and use Tcl. It's easily the worst language I've ever used and I firmly believe that the entire semiconductor industry is being held back years due to the stranglehold of Tcl. Everything in Tcl is a string. This is just one example of the idiocy of this language.
- colanderman 11y agoEven as a fan of rich type systems, I can think of much worse design choices for a language than "everything is a string". "Everything is an object whose class is determined at runtime" comes to mind. And as a former Tcl dabbler, that's also definitely not the first thing I'd pick on. `upvar` is a far more egregious violator of sanity, and I seem to recall that parsing optional arguments to a function is quite the adventure.
- spc476 11y agoIt's not so much "using" as it is "understanding". I've been playing around with INRAC (http://boston.conman.org/2015/11/16-19 http://boston.conman.org/2015/11/16-19), the language used to implement Racter (https://en.wikipedia.org/wiki/Racter https://en.wikipedia.org/wiki/Racter) which has the most insane flow control I've ever come across in a language. Subroutines (for lack of a better term) do not need to have unique names, and when you call a subroutine, one matching the name is picked at random. Oh, and you can specify subroutine names with a pattern (and of course, one subroutine whose name matches is picked at random). The same works for GOTO as well. It's a very non-deterministic language. And it's so moribund that I think only two commercial programs (Racter is one, I think I've come across another) were written in it.
- arihant 11y agoI still use Awk. I picked up Awk for some random 15-123 assignment in sophomore year. I still use it for automating/shell scripting anything that I need to. I could use Python or something hip. But I haven't quite grown out of my fondness for Awk. I'd add Lisp to the list, but you can't call it unfashionable, unless you also call Beetles unfashionable.
- Hixie 11y agoMy favourite language in FreePascal's dialect of ObjectPascal (which is largely derived from the work Borland did with Delphi, which itself is largely derived from Borland's Turbo Pascal). It has all the benefits of a modern language -- strong typing, generics, operator overloading, objects, metaclasses, dynamic arrays, interfaces, RTTI, dynamic dispatch, method pointers, type helpers, true modules, fast compile times, preprocessor directives, pretty large set of libraries from the community, etc -- and all the benefits of a compiled language -- compiles to pretty small binaries, small memory footprint at runtime, tight control over memory allocation and layout, trivial ability to shell out to assembler when necessary, etc. It builds to pretty much every platform under the sun -- Mac, Windows, Linux, Android, iOS, MSDOS, OS/2, BeOS, Netware, you name it. Some of its features are features I've rarely seen in 'fashionable' languages. For example the way classes and metaclasses work in FreePascal is great. You can pass classes around by value, constructors can be virtual, even static methods can be virtual. In many ways it's really a better C++. For example, what I just said about metaclasses. It has native support for strings. The declaration part of a module (unit interface) is separate from its implementation, so it's easy to get an overview of what is exported from a module, but it's in the same file and is a first-class-citizen of the language, unlike C++ header files. The syntax also makes a lot more sense than C-like languages. For example, there's an explicit keyword to introduce a function, and constructors are named rather than using the type name. (These don't sound like interesting features until you're trying to navigate the source and you find that searching for a method becomes far easier, or you're trying to copy/paste a class and you find you don't have to worry about renaming constructors, stuff like that.) It doesn't even have to link in a libc, it has its own RTL. (It can link in a libc if you want to use some C or C++ libraries with it though.) There's aspects of it that are a bit crufty from having decades of legacy, but it's probably still better than C++ in that regard. I don't really know why Pascal derivatives haven't taken off more. At work I use Dart, which has many of the benefits I listed above, but in the form of a GC'ed VM-hosted language. Dart's a much newer language, though, so regardless of its usage it's probably too early to know if it will end up in the "unfashionable" category. Dart has all kinds of cool features like the ".." operator for chaining, the "??=" operator for assignment-if-null, the "with" feature for doing composition rather than inheritance, etc. Also very readable.
- 11y ago
- latenightcoding 11y agoPerl, C and LISP is all I need.
- bdcravens 11y agoI still support a few apps in ColdFusion. It wasn't that long ago that I was speaking at CF conferences; I still am the manager of the Houston CF user group. I started my career at a time when it was a super fast option to build a web app (1999). It's still a solid language, but there just isn't the ecosystem that Rails (and others) have, which is where I'm mostly parked these days.
- LarryMade2 11y agoI still fiddle with Commodore BASIC - c64list ( https://www.commodoreserver.com/BlogEntryView.asp?EID=DB1EC7391247402997A20810B1ACED71 https://www.commodoreserver.com/BlogEntryView.asp?EID=DB1EC7... ) makes writing & editing a bit less painful
- bsg75 11y agoMaybe not unfashionable, yet, but I still find Awk and its variants very useful and productive. Combined with SQL a lot of data crunching happens without anything fancy.
- codeonfire 11y agoI use visual basic to pay my bills in Excel. It's unique in that Microsoft has never seen fit to integrate any other language into Excel. It has a large following in finance and other business disciplines. Companies have also undertaken year long concentrated development efforts solely to produce Excel spreadsheets (and VB macros) that run their business. What can you learn? That a poorly thought out language will become incredibly popular if it is the only thing integrated with an extremely popular application. Make the language ubiquitous by tying it to an application.
- tikwidd 11y agoI use PowerBuilder (of Sybase) at my job. We have a database centric stack mainly built with stored procedures and PowerBuilder works pretty well (PowerBuilder datawindows just represent a SELECT query or point to a stored procedure). It's very legacy. The syntax is similar to BASIC, with some SQL database querying built in as a kind of DSL. The built-in string and array libraries are particularly bad. The Powerbuilder IDE rebuilds the object you're working on whenever you save, so if there are any errors you can't save the file from within the IDE. You can't view or edit a script and its ancestor at the same time. When source control is switched on, you can't save a file without checking it out first - but you can't check it out without closing it and discarding any changes you made. I usually have Notepad++ open alongside PowerBuilder at all times.
- stephenjromero 11y agoI can't say I still write in it but my first programming job was supporting legacy Classic ASP systems. After one year only writing in ASP I started learning VB.NET and all the things I learned from ASP helped me pick it up really easy. But it still haunts my dreams.
- arisAlexis 11y agoAt work a colleague wrote a software to calculate some numbers for some scientific papers in Logo ( you remember the turtle?) I thought he was joking but wasn't.
- vram22 11y agoI've used Logo as one early language when I was learning programming years ago. Enjoyed it. Though maybe designed primarily to help teach kids programming / logic etc., Logo is actually at least moderately powerful, since it is a variant of Lisp.
- stillusingvb6 11y agoVB6. You can literally feel the disdain from others when I talk about it.
- CodeWriter23 11y agoI get the feeling that Perl qualifies as "unfashionable". To be fair, I haven't stepped up to Perl 6 just yet, so I arrive at that conclusion from a Perl 5 perspective. Why do I still use it? That's broken into two parts. I started using it because it was the language of choice for web apps circa 1999. I kept using it until recent years because of a large code base I was maintaining. I continue to use it today because Perl Dancer 2 is a kick-ass framework. It has an extendable DSL, and it really makes short work out of writing web apps.
- vram22 11y agoInteresting no one except ehudla has mentioned Eiffel.
- joeguilmette 11y agoI'm a PHP developer specializing in WordPress. Probably the most unsexy and looked down upon platform in these parts. But, we make a profitable and well-loved product with thousands of happy users. Too bad that isn't sexy anymore.
- lmilcin 11y agoCommon Lisp. I am bemused why general programming public is so misinformed about basic facts about productivity, efficiency and programming languages. Design Patterns (aka Institutionalized Use and Multiplication of Boilerplate Code) anyone?
- riibe 11y agoBASIC.!
- riibe 11y agoBASIC.!
- GFischer 11y agoThe main system at the insurance company where I currently work is written in FORTE 4GL's TOOL (I think it stands for The Object Oriented Language) https://en.wikipedia.org/wiki/Forte_4GL https://en.wikipedia.org/wiki/Forte_4GL It's basically an earlier version of Java, so I don't think there's much to learn from it. To make things worse, the developers of the system in their infinite wisdom developed a custom scripting language that looks like an ill-conceived assembler. It's apparently cheaper to have some developers support this monster than to rewrite it from scratch or buy an off-the-shelf product (which, to be fair, are horrendously expensive and consultant fees are ridiculous). I learned the language through mentoring and reading the online documentation. You really get to value communities and stuff like StackOverflow or Github when you don't have them :)
- kerseykyle 11y agoAda, it has a better typing system than any of the more modern languages and checks to find some common errors when it compiles.
- greg_data 11y agoNothing currently, really. However, when I first joined the company I work at (as a Graduate Data Analyst) I wrote a recommendations engine in VBA. It took about 5 minutes to chug through 3 months of sales data and produce a list of content -> content pairings & weights. Then I discovered Python, cursed my manager, and the same algorithm ran in <1s on the same data.
- WorksOfBarry 11y agoI use RPGLE on AS/400|IBMi machines on a daily basis