User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Which language?

Sat Mar 14, 2015 2:56 pm

I have been thinking about HLL's (High level Languages) a bit, and the pro's and con's for them based on what they are used for. I would like to know what others think on this issue.

So far I have:

Easey to teach, and general purpose:
ARM Assembly (standard syntax, NOT GAS syntax).
BBC BASIC V.
PASCAL (any compiled modular implementation).
C
!Charm.

Interpreted General Purpose:
BBC BASIC V.
Some other BASIC's.

Intentionally Slow (unless a JIT is used) Interpreted:
ECMA Script.
Java.

OS Development (On the RPi):
C
ARM Assembly.
Pascal.

OO and producing good results
C++ (So long as you avoid the standard templates and libraries).
!Charm.
PASCAL (Some implementations of Object Pascal).
C with manual OO implementation.
ARM Assembly with manual OO implementation.

Short Development Cycle (including debuging):
BBC BASIC V (especialy if you have a good BBC BASIC V Compiler).
ARM Assembly.
Pascal.
!Charm.

****************************** END LISTS ***************************************************************
That is the view I have thus far.

I know that some will flame against BBC BASIC V, though it is equaly capable to C, Pascal, !Charm, etc, and is capable of being equaly structured as well.

I have written a few compilers, including one for BBC BASIC (Incomplete) and one for PASCAL. These are the simple recursive parsing compilers that every programmer does from time to time. Though now I am considering possibly implementing a few compilers with some simple code optimization (still recursive decent parsers), and as such I am giving some thought to the applicability of the verious languages.

I am definitely looking foward to hearing the input from others on this topic. Thank you for any views to the usability of verious programming languages.

I am aware that we all have differing views, so do not worry about giving a view that you feel may be contraversial, this thread is about the differing point of view for the usage of the verious programming languages.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
buja
Posts: 530
Joined: Wed Dec 31, 2014 8:21 am
Location: Netherlands

Re: Which language?

Sat Mar 14, 2015 3:52 pm

What about Python?

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sat Mar 14, 2015 4:56 pm

buja wrote:What about Python?
What is Python useful for?

I know it is not very easy to teach. Other than that I know little to nothing about Python (I use RISC OS on the RPi, Mac OS 7.5.5 on the PPC Macintosh, and Atari TOS on the Atari TT), as it is not easy to play with on any system I have.

So what is the apropriate usage(s) for Python?
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
experix
Posts: 204
Joined: Mon Nov 10, 2014 7:39 pm
Location: Coquille OR
Contact: Website

Re: Which language?

Sat Mar 14, 2015 5:02 pm

Will you consider adding experix to the list? You can write scripts that run specialized USB things and stuff on the GPIO, do all sorts of calculations on the data they give back, and draw pretty graphs of the results. By running the device-operating script in a thread, you can control it and do other stuff while it is running. Headless operation (connected to an experix display interpreter over the network) will be available in the next release. http://experix.sourceforge.net

User avatar
emgi
Posts: 357
Joined: Thu Nov 07, 2013 4:08 pm
Location: NL

Re: Which language?

Sat Mar 14, 2015 5:12 pm

DavidS wrote:
buja wrote:What about Python?
What is Python useful for?

I know it is not very easy to teach. Other than that I know little to nothing about Python (I use RISC OS on the RPi, Mac OS 7.5.5 on the PPC Macintosh, and Atari TOS on the Atari TT), as it is not easy to play with on any system I have.

So what is the apropriate usage(s) for Python?
How about Perl?
As far as I'm concerned Perl qualifies as an easy to teach general purpose language but you may see that differently.
One of the aspects to consider is how many people are using it. That would put Perl lightyears ahead of ARM assembly. 8-)

/emgi

User avatar
buja
Posts: 530
Joined: Wed Dec 31, 2014 8:21 am
Location: Netherlands

Re: Which language?

Sat Mar 14, 2015 6:02 pm

I guess you could use Python for everything you use Basic for in your list.
It seems to be a popular language today and apparently it's object oriented. And I read it explains the Pi in Raspberry Pi.

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sat Mar 14, 2015 7:18 pm

experix wrote:Will you consider adding experix to the list? You can write scripts that run specialized USB things and stuff on the GPIO, do all sorts of calculations on the data they give back, and draw pretty graphs of the results. By running the device-operating script in a thread, you can control it and do other stuff while it is running. Headless operation (connected to an experix display interpreter over the network) will be available in the next release. http://experix.sourceforge.net
Seems like a device control scripter, I will have to look into it some more. Though it is a possibility.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sat Mar 14, 2015 7:20 pm

emgi wrote:
DavidS wrote:
buja wrote:What about Python?
What is Python useful for?

I know it is not very easy to teach. Other than that I know little to nothing about Python (I use RISC OS on the RPi, Mac OS 7.5.5 on the PPC Macintosh, and Atari TOS on the Atari TT), as it is not easy to play with on any system I have.

So what is the apropriate usage(s) for Python?
How about Perl?
As far as I'm concerned Perl qualifies as an easy to teach general purpose language but you may see that differently.
One of the aspects to consider is how many people are using it. That would put Perl lightyears ahead of ARM assembly. 8-)

/emgi
I had not thought of Perl. Perl is definitely a largely used language (largely for things it is not any good for), and it is a general purpose language (I think).

Though I have one question on Perl:
How do you access memory locations directly?
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sat Mar 14, 2015 7:26 pm

buja wrote:I guess you could use Python for everything you use Basic for in your list.
It seems to be a popular language today and apparently it's object oriented. And I read it explains the Pi in Raspberry Pi.
OK, I guess I had some bad information then.

How do you dirrectly access memory by address (using a veriable, or directly) in Python. Also how are structured data types handled? I will be doing a bit of research on Python for sure.

Also what is Basic? I know BASIC (Acronym for Beginers All Purpose Symbolic Instruction Code), though I have not heard of Basic.

And Pi is the ratio of the diameter to the cercumference of a circle, and a universal synbol of education in the fields of mathmatics and algorithmic processing. As I understand what was being said on these forums before the release of the RPi that is the intended meaning of Pi in Raspberry Pi.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
buja
Posts: 530
Joined: Wed Dec 31, 2014 8:21 am
Location: Netherlands

Re: Which language?

Sat Mar 14, 2015 8:00 pm

DavidS wrote:
buja wrote:I guess you could use Python for everything you use Basic for in your list.
It seems to be a popular language today and apparently it's object oriented. And I read it explains the Pi in Raspberry Pi.
OK, I guess I had some bad information then.

How do you dirrectly access memory by address (using a veriable, or directly) in Python. Also how are structured data types handled? I will be doing a bit of research on Python for sure.

Also what is Basic? I know BASIC (Acronym for Beginers All Purpose Symbolic Instruction Code), though I have not heard of Basic.

And Pi is the ratio of the diameter to the cercumference of a circle, and a universal synbol of education in the fields of mathmatics and algorithmic processing. As I understand what was being said on these forums before the release of the RPi that is the intended meaning of Pi in Raspberry Pi.
Please forgive my little spelling mistake.
By the way, what are dirrectly, veriable, cercumference, synbol and mathmatics?

User avatar
scruss
Posts: 2819
Joined: Sat Jun 09, 2012 12:25 pm
Location: Toronto, ON
Contact: Website

Re: Which language?

Sat Mar 14, 2015 8:13 pm

DavidS wrote:Though I have one question on Perl:
How do you access memory locations directly?
Two options:
  1. You don't. Because in scripting languages, you don't need to. They handle all the memory allocation for you. You have data structures dynamically-allocated to whatever you need, which are quietly garbage collected as required. Speed and ease of development usually trumps code run time. Under Unix/Linux, you should never really care about where your code or data is in memory: it's all one big virtual address space to each process.
  2. Use Devel::PeekPoke, but with extreme care. If you have a packed data structure in a variable in Perl, you can use unpack() to pull out the various fields using a rather complex field template.
Structured data types in Perl/Python/JavaScript are (almost always) handled as hash tables. You can get fancy and wrap them in an object, but they are still just hash tables.

If you're looking for a BASIC that is fast and might remind you of something on the Atari TT, X11-BASIC is very like the old GFA BASIC for the Atari.
‘Remember the Golden Rule of Selling: “Do not resort to violence.”’ — McGlashan.

User avatar
emgi
Posts: 357
Joined: Thu Nov 07, 2013 4:08 pm
Location: NL

Re: Which language?

Sat Mar 14, 2015 8:14 pm

DavidS wrote: Though I have one question on Perl:
How do you access memory locations directly?
Why should you want to do this :?:
If this seems important to you I would say you are mixing up the properties of high- and low- level languages.
With a structured and platform-independent language like Perl, there is no real need for it.

/emgi

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sat Mar 14, 2015 8:30 pm

buja wrote:
DavidS wrote:
buja wrote:I guess you could use Python for everything you use Basic for in your list.
It seems to be a popular language today and apparently it's object oriented. And I read it explains the Pi in Raspberry Pi.
OK, I guess I had some bad information then.

How do you dirrectly access memory by address (using a veriable, or directly) in Python. Also how are structured data types handled? I will be doing a bit of research on Python for sure.

Also what is Basic? I know BASIC (Acronym for Beginers All Purpose Symbolic Instruction Code), though I have not heard of Basic.

And Pi is the ratio of the diameter to the cercumference of a circle, and a universal synbol of education in the fields of mathmatics and algorithmic processing. As I understand what was being said on these forums before the release of the RPi that is the intended meaning of Pi in Raspberry Pi.
Please forgive my little spelling mistake.
By the way, what are dirrectly, veriable, cercumference, synbol and mathmatics?
I have no trouble with you making a spelling mistake, as you noted I do that all the time. I was just pointing out that BASIC is an acronym incase you did not know (you would be surprized how many do not).
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sat Mar 14, 2015 8:37 pm

emgi wrote:
DavidS wrote: Though I have one question on Perl:
How do you access memory locations directly?
Why should you want to do this :?:
If this seems important to you I would say you are mixing up the properties of high- and low- level languages.
With a structured and platform-independent language like Perl, there is no real need for it.

/emgi
Any general purpose language needs the ability to directly access memory, even if just to do unique things in its own heap.

Though remember not every application is going to be platform independant, even if writen in a language that can be. There will always be things like direct device interfaces (usualy handled by some form of secondary interface, that has to be coded), and as such this is a requirement for a truely "general purpose language".

BBC BASIC V, Pascal, C, C++, !Charm, and Delphi are all "High Level Languages", and all have the ability to dirrectly access memory, because it is a need of a general purpose language. There is a reason that general purpose languages used to also be called systems languages.

I know that ECMA script also has the ability to dirrectly access memory, and that is as far from the HW as is possible, it is usualy used for applications embeded in HTML documents.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
scruss
Posts: 2819
Joined: Sat Jun 09, 2012 12:25 pm
Location: Toronto, ON
Contact: Website

Re: Which language?

Sat Mar 14, 2015 9:44 pm

DavidS wrote:I know that ECMA script also has the ability to directly access memory …
No, it doesn't. Not even slightly.

I don't think you'll find a modern high level language to suit you, as you're using 30+ year old systems programming languages as your model. The kids are writing apps in C# and JavaScript these days because the frameworks are there.

Stewart
‘Remember the Golden Rule of Selling: “Do not resort to violence.”’ — McGlashan.

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sun Mar 15, 2015 1:03 am

scruss wrote:
DavidS wrote:I know that ECMA script also has the ability to directly access memory …
No, it doesn't. Not even slightly.

I don't think you'll find a modern high level language to suit you, as you're using 30+ year old systems programming languages as your model. The kids are writing apps in C# and JavaScript these days because the frameworks are there.

Stewart
I admit that it has been a number of years since I used ECMA Script, or as you put it Java Script (a term I do not like, as it is nothing like Java). And it is possible that my memory is a bit to fuzzy on that.

And the fact that all of the frameworks are provided is exactly the reason not to use a given language. When I use C++ I avoid the standard object lib, as well as the STL, and only use a small part of the C standard lib, because the C++ way wastes memory, and is rather crude (reminds me a lot of another much older OO that did not last long [I forget the name of the other OO HLL, sorry]).

I can see the usage of ECMA Script. Though I have never used C# as the only compilers I have so far found produce a byte code (I think it was called something like ".net", which makes no sence), and not native aplication code.

Scripting languages are sh, csh, bash, command.com (.bat/batch), Obey, DBASE, etc. Interpreted general purpose languages can be used as scripting languages, though they are more useful than that, I would rather write a WIMP based modern application in BBC BASIC V, then to play with a scripting language that does not have any way to make a dirrect system call, or include inline assembly, or dirrectly manipulate memory (the things that I was taught a general purpose language must be capable of, and things I use a lot in programming).

Sorry to disapoint. I am not a copy paste coder, or how ever you word it now. I believe in designing every routine, and if using an OO lang then your use it well, not to creat unneeded bloat. I have always been anti-bloat, and always will be anti-bloat, sorry.

Though there are a few more interesting languages that have been mentioned here.
Last edited by DavidS on Sun Mar 15, 2015 1:22 am, edited 1 time in total.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sun Mar 15, 2015 1:15 am

scruss wrote:Structured data types in Perl/Python/JavaScript are (almost always) handled as hash tables. You can get fancy and wrap them in an object, but they are still just hash tables.
Sorry to hear that. Hash tables have there place, though not in a general purpose programming language (unless implemented in the application for a good reason).
If you're looking for a BASIC that is fast and might remind you of something on the Atari TT, X11-BASIC is very like the old GFA BASIC for the Atari.
I do not use GFA BASIC, I have never liked it. On the TT I use 68030 assembly using DevPac for my assembler.

For BASIC there are two that I like using, those are BBC BASIC V (in RISC OS), and FreeBASIC (on the x86 runing FreeDOS, I used to enjoy using QuickBASIC 4.5 running in DR-DOS). I did start with Commodore BASIC v2 (a 8KB 6502 MS-BASIC implementation), though when I learned BBC BASIC V it blew everything else away (and made the transition to ARM Assembly easy).

I still like K&R syntax C better than ANSI C. Though I use ANSI C as it is what is expected, even if most ignore the standard and use many GCC language extensions that are outside the standard.

I am looking into python, as well as Lua, as I know almost nothing about either.

If ECMA script does not support dirrect memory access how is it good for compiling for use in small MCU's? As said I have not played with ECMA Script in over 12 years (at which time it was just called Java Script), so my memory can be mixed up on that.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
r3d4
Posts: 978
Joined: Sat Jul 30, 2011 8:21 am
Location: ./

Re: Which language?

Sun Mar 15, 2015 10:47 am

DavidS wrote: As said I have not played with ECMA Script in over 12 years (at which time it was just called Java Script), so my memory can be mixed up on that.
Looking at your list and i see JS/(ECMA Script) under heading "Intentionally Slow .. Interpreted" and then others under heading "OO and producing good results" im left a little confused i would have thaught the lang devide would be compiled or interpreted...

I must admit that i dont know what defines a language as OO or not so .... i looked up some opinions on that

mozilla says 'JavaScript is object-oriented to its core' - link

Is JS OO :?:

perhaps the folowing might be of intrest ? idk ...
#javascript.crockford.com/prototypal.html - Prototypal Inheritance in JavaScript
#javascript.crockford.com/inheritance.html - Classical Inheritance in JavaScript


+ What about elua

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sun Mar 15, 2015 1:25 pm

r3d4 wrote:
DavidS wrote: As said I have not played with ECMA Script in over 12 years (at which time it was just called Java Script), so my memory can be mixed up on that.
Looking at your list and i see JS/(ECMA Script) under heading "Intentionally Slow .. Interpreted" and then others under heading "OO and producing good results" im left a little confused i would have thaught the lang devide would be compiled or interpreted...

I must admit that i dont know what defines a language as OO or not so .... i looked up some opinions on that

mozilla says 'JavaScript is object-oriented to its core' - link

Is JS OO :?:

perhaps the folowing might be of intrest ? idk ...
#javascript.crockford.com/prototypal.html - Prototypal Inheritance in JavaScript
#javascript.crockford.com/inheritance.html - Classical Inheritance in JavaScript


+ What about elua
I was listing the languages by usage. ECMA Script is one of those languages you use when you want the result to be a bit slower than it would be in other situations. I know that modern JIT ECMA Script implementations cheat by doing an optimized compile before running.

Yes ECMA Script is most definitely OO, no question of that. Though it is not the OO you would use to produce a fast tight executable object file. The others mentioned under "OO and Produce Good Results", are refering to compiled languages that produce good results for general purpose programming (which includes everything from writing an Operating System kernel, to games and compilers).
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
r3d4
Posts: 978
Joined: Sat Jul 30, 2011 8:21 am
Location: ./

Re: Which language?

Sun Mar 15, 2015 1:41 pm

DavidS wrote:I was listing the languages by usage. ECMA Script is one of those languages you use when you want the result to be a bit slower than it would be in other situations. I know that modern JIT ECMA Script implementations cheat by doing an optimized compile before running.
Would this not be the case for any Interpreted lang without optimized / JIT ?
eg python lua ect

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Which language?

Sun Mar 15, 2015 3:43 pm

r3d4 wrote:
DavidS wrote:I was listing the languages by usage. ECMA Script is one of those languages you use when you want the result to be a bit slower than it would be in other situations. I know that modern JIT ECMA Script implementations cheat by doing an optimized compile before running.
Would this not be the case for any Interpreted lang without optimized / JIT ?
eg python lua ect
Yes it would be, in at least some cases. ECMA Script is way slower than BBC BASIC V, where both are interpreted (at least with any implementation of ECMA Script I have ever sean), I have yet to compare compiled BBC BASIC V with JIT compiled ECMA Script (and that would depend on the compiler used in both cases). I do not know how well Python or Lua do, as I have never used either.

For most applications a good fast interpreter is quite good at doing things fast, like the BBC BASIC V interpreter (yes it is specific to RISC OS, though I do not know a portable interpreter that is as fast).
Using BBC BASIC V as the example, 90% of stuff runs at least half as fast as the equilevent in compiled C (do to the fact that the biggest bottle neck on 90% of appliction software is with the OS, and BBC BASIC V is fast enough to not make a huge deference). Though when doing a lot of interpreted processing with out calling the OS in any way very often, BBC BASIC V can be up to 6 times slower than compiled C (very rare cases a little slower than that). Compiled BBC BASIC V can be equal to the possible speed of compiled C, that is up to the compiler, and how it is optimized.

BBC BASIC V does have the advantage of allowing the use of assembly language, even in an interpreted program. It does take a small amount of time to assemble the code in such usage, though once assembled it is as fast as if assembled any other way (and the auther is responsible for optimizing).
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

richrarobi
Posts: 271
Joined: Sun Feb 08, 2015 1:13 pm

Re: Which language?

Sun Jun 14, 2015 10:29 pm

You have to consider what you want to use the language for, and what it can do. For example, on the pi, not every language has access to the gpio. Python has the most support, and the most explanation. C, java and ruby also, but not as well supported as python.
If you want to get into fancy stuff like concurrency, you should look at more modern languages as the changes in this area are vast. Scala, go and Haskell come to mind, and don't, forget Dougies favourite?, Erlang!
You also need to consider the primary purpose of the language, e.g. perl for system control scripting or lisp for list processing, and prolog for logic.....
Have a read of the walnut guide for the e language, especially chapter 3 & 4, for concurrency.
RichR

Heater
Posts: 14437
Joined: Tue Jul 17, 2012 3:02 pm

Re: Which language?

Tue Jun 16, 2015 8:20 pm

DavidS,

How did I miss such a juicy language war thread for so long? :)

I have come here to defend ECMA Script.

Firstly I totally concur with your not wanting to call it "JavaScript". As you say, it's nothing like Java, it's a far superior language in many ways. Also crazy is the fact that "JavaScript" is a trademark of the Oracle Corporation who don't even make a JavaScript engine!

As for "Intentionally Slow", that is crazy talk, no language is designed to be deliberately slow. ES was designed as a language that non-programmers could pick up and make stuff with very easily. It had to be easy to deliver into web browsers easily. Which it succeeded at very well. Being inspired by languages like Self and Lisp it also turns out to have magic powers that the experienced programmer can work wonders with.

ES is available and fast on all platforms I need it to be available on. x86, ARM, MIPS, using Windows or Linux. It's amazing that it can get the job done at nearly the speed of C/C++ in many cases with a lot less development hassle.

As for the other languages on your list:

ARM Assembly, BBC BASIC V, !Charm, Java, are all pretty useless. None of them have any compelling language features. They are not very cross platform or cross platform at all. I don't want to invest my time developing code that cannot be used on a wide variety of platforms. Of course any assembly language is great when you actually need it.

Pascal, no compelling language features, annoying type checking, ugly syntax.

C++, over complicated collection of cruft from decades past plus new features to make it easier to use but adding to it's complexity. I don't believe any single human understands all it's features and how they may interact with each other, including the languages creator.

C++, a wonderfully powerful, expressive, performant and portable language. Essential for those who want to create ES and other engines?

Avoiding the STL is essential if you are writing code for small systems. If you do your C++ can be as compact and efficient as C. C++ is used on the tiny Arduino after all. Otherwise avoiding the STL is silly, why reinvent all those wheels?


As for object oriented, by the original meaning of "OOP" there is only one OOP language in widespread use now a days, Erlang.
Memory in C++ is a leaky abstraction .

User avatar
FTrevorGowen
Forum Moderator
Forum Moderator
Posts: 5335
Joined: Mon Mar 04, 2013 6:12 pm
Location: Bristol, U.K.
Contact: Website

Re: Which language?

Tue Jun 16, 2015 9:13 pm

I'm somewhat intrigued that a few languages I've worked with, in some cases for decades, don't make it to your list (perhaps they're "just too old", not "general purpose enough" or, not being O.O., "out of fashion"):
Algol (Pascal's "uncle" perhaps ;) )
Fortran (various standards, still in use when I retired, just before the Pi's launch, but considered to be "legacy code" by some)
Forth (A threaded language, very close to the machine code esp. on something like the Jupiter Ace. I especially liked the concept of programs being "words" in a "dictionary" that was added to - subsequent programs being able to use the new words... . )
Historically, working in a R & D environment, I used "computers" of various "sizes" (some even designed and built specifically for the task) to either control/capture experimental data both in the laboratory and "field trials" (ie. what is now called "physical computing") and, mainly during the later years, to simulate and model various "Physics problems". Various BASIC dialects, Forth and low-level machine code were used for the first, and a combination of Fortran an 'C' for the second.
Trev.
Still running Raspbian Jessie or Stretch on some older Pi's (an A, B1, B2, B+, P2B, 3xP0, P0W, 2xP3A+, P3B+, P3B, B+, A+ and a B2) but Buster on the P4B's. See: https://www.cpmspectrepi.uk/raspberry_pi/raspiidx.htm

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24945
Joined: Sat Jul 30, 2011 7:41 pm

Re: Which language?

Wed Jun 17, 2015 9:33 am

Heater wrote: Avoiding the STL is essential if you are writing code for small systems. If you do your C++ can be as compact and efficient as C. C++ is used on the tiny Arduino after all. Otherwise avoiding the STL is silly, why reinvent all those wheels?
Not sure I agree with this. STL when used properly doesn't really add much to a system, and it can produce faster code, albeit at the cost of increased code size depending of what you want to do.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I own the world’s worst thesaurus. Not only is it awful, it’s awful."

Return to “General programming discussion”