![]() |
#1 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,585
Karma: 79436940
Join Date: Nov 2007
Location: Toronto
Device: Libra H2O, Libra Colour
|
Computer Languages you've used (and loved)
Looking back over the years, there are many languages I've used and enjoyed.
Trying to list them in chronological order: High School APL. Originally using dialup to an IBM mainframe and then we moved to using IP Sharp. Also some exposure to APL on an IBM 5100 portable computer. HP basic on an HP 9830A desktop computer University PL/1 through a range of subsets; initially SP/k then PL/C using punched cards on an IBM/360 of some variety. Pascal on LSI-11s using RT-11 More APL on a Burroughs 6700 COBOL Algol Macro-11 Lisp Snobol Prolog SPSS Fortran (various dialects) C Working Life SAS 370 Assembler Python Perl Awk JCL |
![]() |
![]() |
![]() |
#2 |
Still reading
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 14,450
Karma: 107078855
Join Date: Jun 2017
Location: Ireland
Device: All 4 Kinds: epub eink, Kindle, android eink, NxtPaper
|
QUBAL
ForTran (Horrible, which is why I avoided BASIC) SC/MP Assembler (Horrible) Z80 Assembler (Horrible, because not a Macro Assembler) Pascal BASIC (one project on Sinclair Spectrum) Forth (Test systems) 78HC11 Macro Assembler used to build a Forth-like system Westinghouse Blockware Occam Modula-2 (Really good and able to do concurrency in the Language. Generic Functions, Opaque Modules). It is not a flavour of Pascal. 8051 Assembler (Horrible microcontroller) Specifications in CHiLL. Own designed dataflow programmming language entered as a schematic. "Parts List" became modules. "Net List" became task schedule list & I/O table for modules. Implement atomic modules in anything for target CPU. Run time uses an I/O table instead of stack for parameters and returns and a fast Round Robin scheduler. On Z80 use alt register bank for scheduler. C++ C (MS DOS compiler with horrid bugs). Lisp & Prolog (Both languages supposedly for AI and pointless) Java (Some real projects) VB6 (which used properly isn't much like BASIC) Good for RAD & Prototyping and connection to SQL Servers. VB.Net -- A failure, a bad version of C# C#, in really MS version of Java for .Net 8086 Assembler. Stupid CPU, an 8080 on steroids without sane addressing. Perl (Terrible) Python (Terrible) Oberon PIC assembler JAL (for PIC micro). Far better than C or BASIC or Assembler for PIC Last edited by Quoth; 08-31-2025 at 11:23 AM. |
![]() |
![]() |
![]() |
#3 |
null operator (he/him)
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 21,842
Karma: 30277270
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
Used in Anger - i.e. got paid to write it, and results were put to use for the intended purpose
Autocoder - Ferranti & KDF9 Algol 60 & 68 Fortran PL/1 RTL/2 ADA COBOL Assemblers - various RPG (on an LSI-11 ![]() C C++ Dabbled with, or used on projects that failed to deliver Modula-2
Smalltalk Eiffel GE Basic C# |
![]() |
![]() |
![]() |
#4 | |
Fanatic
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 514
Karma: 860470
Join Date: May 2025
Device: Kobo Forma
|
Can I ask how did you learned it? I mean, if you was to get a job that requires a language you didn't used, was you to get it before a job interview? (As I don't think it would be feasible to learn those in 24 hours - despite some books mentions it LOL).
I'd tried the first 4 chapter of C++ by Bjarne Stroustrup, 4 times ( ![]() Anyway, I'd liked his way to present it, also mentioning that the book doesn't has to be read linear. There is this article that might be interesting - imho: http://harmful.cat-v.org/software/c+...it_for_you_all Quote:
Last edited by nana77; 09-01-2025 at 05:15 AM. Reason: the link is not https, otherwise it seems not to work |
|
![]() |
![]() |
![]() |
#5 |
Still reading
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 14,450
Karma: 107078855
Join Date: Jun 2017
Location: Ireland
Device: All 4 Kinds: epub eink, Kindle, android eink, NxtPaper
|
Some places teach a programming language. A few places teach how to program.
Your "interview" is pretty poor satire. Most of the flaws in C++ in 1987 when I was learning it were despite Stroustrup, because they were caused by AT&T's demand for backward compatibility. This resulted in supposed C++ programs that were really C programs with classes, because the code monkeys had learned programming languages and had never learned to program. The worst 3rd level students I had for PC applications or programming had "done" it at school. The best hadn't had any exposure, so hadn't learned nonsense. |
![]() |
![]() |
![]() |
#6 |
Somewhat clueless
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 779
Karma: 10535853
Join Date: Nov 2008
Location: UK
Device: Kindle Oasis
|
Various assemblers
BCPL C C++ Pascal (both 'standard' and on Apollo Domain/OS, which is (was) a less bondage-and-discipline flavour of Pascal) Lisp Prolog Objective-C Swift Go Awk Perl Python (love/hate relationship with this one - I love using it, and used well it's superb for some tasks, but I've seen more terrible code written in Python than pretty much any other language). Ruby Basic Java (though the 'and loved' requirement would disqualify this!) Javascript Erlang No doubt there are a few others that have slipped my mind. If hardware description languages count: Verilog SystemVerilog VHDL Ella Hilo Plus a few custom-designed languages. Last edited by jbjb; 09-01-2025 at 04:45 AM. |
![]() |
![]() |
![]() |
#7 | |
Somewhat clueless
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 779
Karma: 10535853
Join Date: Nov 2008
Location: UK
Device: Kindle Oasis
|
Quote:
Most computer science graduates leave university with no clue about the craft of programming. |
|
![]() |
![]() |
![]() |
#8 |
Somewhat clueless
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 779
Karma: 10535853
Join Date: Nov 2008
Location: UK
Device: Kindle Oasis
|
|
![]() |
![]() |
![]() |
#9 | |||
Fanatic
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 514
Karma: 860470
Join Date: May 2025
Device: Kobo Forma
|
Quote:
I'd found it interesting, leastways. Quote:
Quote:
Last edited by nana77; 09-01-2025 at 05:24 AM. |
|||
![]() |
![]() |
![]() |
#10 | |
Still reading
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 14,450
Karma: 107078855
Join Date: Jun 2017
Location: Ireland
Device: All 4 Kinds: epub eink, Kindle, android eink, NxtPaper
|
Quote:
Similarly while Javascript is really nothing to do with Java, and that name was Netscape stupidity, it's as much a programming language as Basic or VBA, but straight HTML (or XML) isn't programming, nor is CSS; they are content description and formatting. I guess I'd include actual Postscript (but not the full PDF spec) as a kind of programming language. A programming language is executed by a defined architecture of "processor" (which could be cogwheels and cams) and as a minimum has:
Procedures, functions, data types, scalar and vector data, mutexes, co-routines, objects, generic functions etc are higher level abstractions. Being able to do arithmetic to addresses ought to require a special directive and be limited to a few device drivers or very low level assembler in some very simple microcontrollers that have no high level language. |
|
![]() |
![]() |
![]() |
#11 | |||||
Somewhat clueless
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 779
Karma: 10535853
Join Date: Nov 2008
Location: UK
Device: Kindle Oasis
|
Quote:
HDLs do require some different ways of thinking, when compared with normal programming languages (consideration of timing, heavy emphasis on parallelism, and a clear understanding of the hardware that will be generated etc. etc.), but many of the elements of the programming craft are also very relevant to HDLs. I'd also argue that exposure to HDLs makes a better programmer, even if that programmer never actually designs any hardware. Understanding of the hardware that will run your program is one of the biggest weaknesses of most programmers, in my experience). Quote:
I'd argue that, in many ways, HDLs are programming languages, the only difference is that they compile to hardware rather than machine code for some processor or VM. In terms of the way logic is expressed, I'd say something like SystemVerilog is *more* similar to a traditional programming language like C than something like Prolog is. Quote:
Quote:
Quote:
Last edited by jbjb; 09-01-2025 at 12:45 PM. Reason: Typo |
|||||
![]() |
![]() |
![]() |
#12 | |
Still reading
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 14,450
Karma: 107078855
Join Date: Jun 2017
Location: Ireland
Device: All 4 Kinds: epub eink, Kindle, android eink, NxtPaper
|
Quote:
See also the stupidity of how strings / array bounds* work in most languages and 40 years after this being identified not just as a way programs crash, but a common security exploit there is still stupid programming. Never mind the stupidity of Bobby Tables exploits in SQL. https://m.xkcd.com/327/ If you need to do direct address arithmetic outside of a specialist (likely assembler) device driver, for performance, you have a rubbish compiler. [* Oh such fun to write a VB6 program calling a DLL passing a string. VB6 strings are mysterious. You first have to assign a maximum length string to the VB variable or the DLL goes BANG! A proper VB string has string size at the -1th position of the array, but C, C++ or Modula-2 doesn't know that.] |
|
![]() |
![]() |
![]() |
#13 | |||
Somewhat clueless
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 779
Karma: 10535853
Join Date: Nov 2008
Location: UK
Device: Kindle Oasis
|
Quote:
Bear in mind that in C and C++, array indexing *is* memory arithmetic ("a[b]" === *(a+b)"). Quote:
There will always be stupid programming. One of my particular beefs is how much of current language development is aimed at making it safer for poor programmers, rather than helping expert programmers produce high performance code. Quote:
|
|||
![]() |
![]() |
![]() |
#14 |
Fanatic
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 523
Karma: 2268308
Join Date: Nov 2015
Device: none
|
|
![]() |
![]() |
![]() |
#15 | |
Still reading
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 14,450
Karma: 107078855
Join Date: Jun 2017
Location: Ireland
Device: All 4 Kinds: epub eink, Kindle, android eink, NxtPaper
|
Quote:
Array accessing is NOT user pointer/address arithmetic and can be done safely. You know I meant idiots dereferencing a pointer, doing arithmetic and then using the pointer. So common in 1980s C and total madness. This is one reason why type-free languages are stupid and languages like Modula-2 that don't allow anonymous array assignments are good. In M2 if you are writing generic functions that are passed an array you can ask what the high limit is. During development I'd have tested all parameters in any language not allowing sane user defined types. On one C project I found that all most all the already approved functions had bugs by doing that. Compilers should have a "test" and "production" flag to turn on run time array bound checking and should always static check at compile time. Worry about improving performance after it's working. #1 is security and #2 is accuracy. Unless you are coding 200 Ms /s DSP or a tiny micro controller managing 1MHz signals, performance is the last thing to worry about. Design anyway and pre-caculating a table outside a loop etc beats bare metal no-guard rail approach. Also code that makes sense to read even without comments. Terse 1970s style C withy Fortran /Basic style variable names makes no sense with modern compilers. No magic numbers in the code for constants. Aim to spend more time before coding and less time debugging. Last edited by Quoth; 09-01-2025 at 04:28 PM. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
I Wish Apple Loved Books | pata | General Discussions | 21 | 02-10-2017 02:10 PM |
Reflection--What I've loved best about my ereader... | GraceKrispy | General Discussions | 32 | 01-17-2011 09:05 AM |