Author Topic: Too many programming languages?  (Read 49230 times)

0 Members and 1 Guest are viewing this topic.

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: Too many programming languages?
« Reply #25 on: September 25, 2019, 01:27:23 am »
Quote
[what do I need to]2. To make a game like Diablo III.
          - Do I learn C, C++ to make it? I know, it's a huge project.
Somewhere I have an eMail of advice from John Carmack (Doom, Quake, etc) about getting into game development.Essentially, he said: "develop your story telling and world development skills.  For every game engine developer, we need hundreds of people who can create an engaging story."  :-)
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: Too many programming languages?
« Reply #26 on: September 25, 2019, 01:42:56 am »
Quote
"develop your story telling and world development skills.  For every game engine developer, we need hundreds of people who can create an engaging story."

Ok, I dug it up, and that's not quite what he actually said.   Here's the whole conversation...(Note that DeVry has been heavily criticized for assort "bad behavior" since this conversation.)

Quote
Date: Wed, 02 Feb 2005 18:31:33 -0600
To: William "Chops" Westfield <billw@xxxxx>
From: John Carmack <johnc@xxxxxx>
Subject: Re: [xxxxx: Help with son's college choices]

At 03:35 PM 2/2/2005 -0800, William "Chops" Westfield wrote:
>I sorta feel like I know you well enough via the arocket mailing list
>to at least suspect that you might be willing to send your thoughts on
>the following issue raised by a co-worker.  I'm likely to be in a similar
>position myself, but not for another 8 years or so (whew!)  If not, feel
>free to ignore this message (or, if you have a canned answer, a pointer
>to that would be fine too.)
>
>Thanks
>Bill Westfield
>
>   To: parents@xxxxxx
>   From: xxxxxxx
>   Subject: Help with son's college choices
>   Date: Wed, 02 Feb 2005 17:56:11 GMT
>
>   I have a son who is a senior in high school. And he is an
>   avid videogame player. He does very well in school. He's
>   taken all of the Advanced Placement math and science classes
>   that his school offers and he gets all A's and B's. When we
>   discuss what he is going to take in college, he says that he
>   wants to be a "video game developer". I don't think that he
>   even knows what is involved in video game development. He
>   found a school in the Mid-West that offers a four-year-degree
>   in video-game development. The tuition is $40,000. He wanted
>   to know if I would I would pay for that. <yeah right!> I've
>   suggested that it would be more realistic to major in
>   Electrical Engineering or Computer Science.
>
>   Yesterday some representatives from the DeVry Institute in
>   Fremont visited his school. They offer a "certificate" in
>   "Video Game Technology".
>
>   Now he is all excited about going there. My question is how
>   do I get him to be more realistic about his future without
>   crushing his spirit and dreams? Has anyone else faced a
>   similar problem?

I'm not a huge proponent of the college game development programs.

The type of, or even existence of, a college degree doesn't play a huge
role in hiring in the game development business, but it may be a lot more
important if he finds out that game development isn't what he thought it
would be as a career, and wants to do something else.  I would agree that
pursuing an EE or CS degree is probably a better choice if he is going to
go through college.

The best way to get hired in the game industry is to develop free "game
mods" that leverage an existing commercial game to showcase the applicants
particular talents without having to develop everything from scratch.  The
developers of popular game mods can usually get a job pretty easily, and
full amateur teams are often "promoted" to real companies with expansion
pack development contracts.  Of course, the vast majority of amateur mod
projects collapse before producing anything worthy of showing to a
commercial developer because the process is a lot harder than it looks at
first glance.

As with just about anything, the way to be really successful is to make
yourself really valuable.  College can lay a foundation, but most of the
value must be self taught.  I didn't go through college, but I do tell
people that it can be a very information rich environment to do a lot of
your early learning in.

John Carmack

 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9890
  • Country: us
Re: Too many programming languages?
« Reply #27 on: September 25, 2019, 03:09:28 am »
haha, MATLAB is indeed very sexy. I'm learning it.
wait, ain't it a product with commands? but not a programming language?
 :-DD

Started working with scripts?
 

Offline RoGeorge

  • Super Contributor
  • ***
  • Posts: 6203
  • Country: ro
Re: Too many programming languages?
« Reply #28 on: September 25, 2019, 04:05:29 am »
Matlab is a commercial and proprietary software.  A free and open source alternative is Octave.  Most of the Matlab scripts can be run in Octave, too.

Recently, there is a trend in using Python instead of Matlab or Octave.

Another recent trend, but with a concept a little different, is Jupyter Notebook https://jupyter.org/

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9890
  • Country: us
Re: Too many programming languages?
« Reply #29 on: September 25, 2019, 04:17:20 am »
I think Octave lacks Simulink and that’s a really big deal.

MATLAB Personal Edition is just $149.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4039
  • Country: nz
Re: Too many programming languages?
« Reply #30 on: September 25, 2019, 04:19:27 am »
I'm with John. Degrees are pretty much worthless. As a programmer I don't think I've ever had an employer who cared whether or not I had a degree, or what degree it was. What I've needed a degree for (30 or 35 years out of date) has been to persuade government bureaucrats to give me a visa to work in their fine country in a job I've already been offered. (e.g. Russia and USA, both in the last five years, while I've been already over 50 years old)

A sufficiently motivated student can learn everything they need by peeking at the syllabus of some top university and learning the stuff they think you should know. And do lots and lots of programming. Your own projects. University assignments you find online. Help out with interesting projects on github (especially ones where salaried people are contributing on company time).

Not many people are sufficiently motivated to do this.

I'd argue that those not sufficiently motivated are not going to do very well once they leave university with a shiny new degree anyway.

It's different if you want to work in a field where you need to be a registered engineer, of course.
 

Online Berni

  • Super Contributor
  • ***
  • Posts: 4957
  • Country: si
Re: Too many programming languages?
« Reply #31 on: September 25, 2019, 04:45:09 am »
Quote
"develop your story telling and world development skills.  For every game engine developer, we need hundreds of people who can create an engaging story."

Ok, I dug it up, and that's not quite what he actually said.   Here's the whole conversation...(Note that DeVry has been heavily criticized for assort "bad behavior" since this conversation.)

Quote
Date: Wed, 02 Feb 2005 18:31:33 -0600
To: William "Chops" Westfield <billw@xxxxx>
From: John Carmack <johnc@xxxxxx>
Subject: Re: [xxxxx: Help with son's college choices]

At 03:35 PM 2/2/2005 -0800, William "Chops" Westfield wrote:
>I sorta feel like I know you well enough via the arocket mailing list
...

This is especially true now days when game engine technology is now so modular that a single programmer can put together quite an impressive game (Unity, UnrealEngine..etc), but creating game content is becoming ever bigger of a job to create all of the art assets. Art assets are no longer 8x8 pixel CGA color sprites, they are heavily detailed 3D models now. This is actually becoming a problem for the game industry that big flagship game titles are becoming too expensive to make.

Also working as a programmer for a game development studio is one of the worst programming jobs you can find. You will be pulling all-nighters all the time when the release date comes up, management will pile on impossible due dates, feature creep will attack you from every direction... its very hard work indeed. And if a big ambitious game flops really badly it can sink the whole company.

I personally like programming but i would NOT want to do it as a job. Its fun when you are making little tools on your own, but can be hell when you have to work on big complex projects that ended up being a tangled spaghetti mess due to all the legacy crap in there that nobody in the whole company knows what it does, but they are pretty sure things would break badly if you tried to remove it (and they do). So i'm instead a electronics engineer that still gets to program here and there because everything has a CPU in it these days and its really useful to be able to make your own tools for automating dull tasks.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Too many programming languages?
« Reply #32 on: September 25, 2019, 05:35:29 am »
Arduino ... just don't write code like this  :palm: :palm: :palm:
 

Online Berni

  • Super Contributor
  • ***
  • Posts: 4957
  • Country: si
Re: Too many programming languages?
« Reply #33 on: September 25, 2019, 05:58:02 am »
Arduino ... just don't write code like this  :palm: :palm: :palm:

Well huge source files are not a bad thing, tho they are annoying to work on sometimes.

For example one of the best FAT32 libraries for MCUs:
http://elm-chan.org/fsw/ff/00index_e.html
Almost all of it is inside ff.c that is 6500 lines long.

Or one of the simplest multi platform OpenGL libraries:
https://github.com/raysan5/raylib/blob/master/src/core.c
Tho this is only one C source file out of about 7 other smaller ones (But still in the thousands of lines)

But yeah being able to write large pieces of code without it ending up a unreadable mess is one of the important skills of a good programmer. Code is for humans to read too, not just for computers.
 

Offline Nusa

  • Super Contributor
  • ***
  • Posts: 2416
  • Country: us
Re: Too many programming languages?
« Reply #34 on: September 25, 2019, 06:24:35 am »
Arduino ... just don't write code like this  :palm: :palm: :palm:

I've seen worse code and fewer comments. But as you say, there's plenty of room for improvement besides the clear assumption that the reader already knows LISP.
 

Offline RoGeorge

  • Super Contributor
  • ***
  • Posts: 6203
  • Country: ro
Re: Too many programming languages?
« Reply #35 on: September 25, 2019, 06:40:43 am »
Arduino is not a programming language.

Degrees are pretty much worthless.

Wrong.  Very wrong.  Don't fall for it.  One should do as much school as one can, or afford to do.
« Last Edit: September 25, 2019, 06:52:18 am by RoGeorge »
 

Offline bjdhjy888Topic starter

  • Regular Contributor
  • *
  • Posts: 62
  • Country: ca
Re: Too many programming languages?
« Reply #36 on: September 25, 2019, 06:43:39 am »
Arduino = toy
 :-DD
 :wtf:
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: Too many programming languages?
« Reply #37 on: September 25, 2019, 06:49:57 am »
Code written by Rocket Scientists, in a language that's supposed to make errors harder to write and encourage good programming.

Code: [Select]
L_M_BV_32 := TBD.T_ENTIER_32S ((1.0/C_M_LSB_BV) * G_M_INFO_DERIVE(T_ALG.E_BV));

if L_M_BV_32 > 32767 then
    P_M_DERIVE(T_ALG.E_BV) := 16#7FFF#;
elsif L_M_BV_32 < -32768 then
    P_M_DERIVE(T_ALG.E_BV) := 16#8000#;
else
    P_M_DERIVE(T_ALG.E_BV) := UC_16S_EN_16NS(TDB.T_ENTIER_16S(L_M_BV_32));
end if;

P_M_DERIVE(T_ALG.E_BH) :=
  UC_16S_EN_16NS (TDB.T_ENTIER_16S ((1.0/C_M_LSB_BH) * G_M_INFO_DERIVE(T_ALG.E_BH)));

(Does anyone know where I can find longer snippets from this (the Ariane 5) code?)

(Worse, what passes for "good programming" changes over the years.  For example, I find it a bit mind-boggling that "strongly-typed" and "dynamically-typed" languages are both considered valid things.  More profound is the importance of efficiency, or the lack thereof.  I'm old enough really cringe at most "CircuitPython on a 32bit CPU with 256k of code memory and 4MB of solid state storage", but... it was cheap enough and fast enough and it fit, so why be upset?)
 

Offline Kjelt

  • Super Contributor
  • ***
  • Posts: 6460
  • Country: nl
Re: Too many programming languages?
« Reply #38 on: September 25, 2019, 06:57:28 am »
As most experienced embedded programmers with an EE education will tell you: C if you want to do embedded programming.

Then you often have to work with colleagues who have an informatics background, you have the HSI to test, and as EE you need to use the API or execute testroutines.
For that it was lua (scripting language not really a programming language in my book) but more and more I see python is used for this. So I would recommend Python for this.

If you have gained knowledge in C and get a career in software programming rather than EE design, you want to learn about OO thought patterns and then you want to look at C++,
but that is for later.

So C and python.

--------------------------------- ANTI TROLL MESSAGE ------------------------------
I don't know from which planet Mr Forth came and which rock he crawled under but in 25 years and 5 companies experience as an embedded software engineer with EE education I never had to use it.
It is also not mentioned in any top 10 embedded programming languages so I just label it as trolling and personal preference.

https://www.fossmint.com/programming-languages-for-embedded-systems/

 

Offline RoGeorge

  • Super Contributor
  • ***
  • Posts: 6203
  • Country: ro
Re: Too many programming languages?
« Reply #39 on: September 25, 2019, 07:02:09 am »
Arduino = toy
 :-DD
 :wtf:

Just to be clear, Arduino is using GNU C compiler and a very light IDE, so Arduino is C/C++.

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19517
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Too many programming languages?
« Reply #40 on: September 25, 2019, 07:19:12 am »
I'm with John. Degrees are pretty much worthless. As a programmer I don't think I've ever had an employer who cared whether or not I had a degree, or what degree it was.

Every decent employer I have had has been extremely interested in both my degree and experience. In interviews they, and I when I have been an interviewer, have always included some questions that rely on the candidate understanding and applying the theory they should have learned in any halfway decent degree.

The one exception turned out to be a company that produced and sold really shit software. Their unit tests executed code but didn't actually test anything, and whenever they encountered a NullPointerException, the response was the classic, wait for it, ...
try {
  // code where an NPE occurred
} catch (NullPointerException e) {
  // ignore it
}

Summary: having and using a decent degree was necessary for my career, but not sufficient.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Too many programming languages?
« Reply #41 on: September 25, 2019, 07:41:30 am »
to be pragmatic, no doubt that my degree is just "a piece of toilet paper" but it has just saved -20% off for a computer programming course related to the Erlang language (1).

See it this way: your degree can open some doors, or can get you some discount on opening doors  :D



(1) only if you are willing to spend two months around the arctic pole ... emm .... during winter, when it's most cold.
Anyway, legal details ...
 

Online Berni

  • Super Contributor
  • ***
  • Posts: 4957
  • Country: si
Re: Too many programming languages?
« Reply #42 on: September 25, 2019, 09:29:08 am »
Id say a degree is useful, but not the whole story.

Just because you have a degree from it does not mean you know how to program well. That comes from working on projects in your own time to gain experience. If you can't come up with enough personal projects then have a look at other peoples work on places like GitHub. If you find there project interesting don't be shy to make improvements and submit a pull request, the project author will be happy that you helped his project along. It will also teach you good coding style since the owner of the git repo will usually not accept shitty code to be merged in.

Perhaps not having a degree makes you fall trough a early sorting pass in interviews, but not all of them. Once you get the interview talk about the personal projects you worked on, show that you have experience in getting stuff done and they will likely take you.

If you can get a degree get one, if not don't worry about it. Its not worth putting yourself in 10s of thousands of dollars of debt for one.
 

Offline SparkyFX

  • Frequent Contributor
  • **
  • Posts: 676
  • Country: de
Re: Too many programming languages?
« Reply #43 on: September 25, 2019, 10:23:39 am »
I think one should master one specific programming language, rather than being an expert of all.
Don´t be a "i only learnt xyz"-employee. The profession requires to learn new things constantly. Once you master one language good enough to get stuff working that is feasible for a one man show, the differences in syntax and concept to the next language are not that hard to understand (of course there are outliers and completely different concepts). Of course you need a lot of time to master just one, but it might be helpful to have an eye open for what others can do. The point is... functional languages do not differ much, object oriented languages do not differ much, once the concepts are understood and you can safely work with them it is usually quite sufficient, the rest is defined by time spent in which area.

Especially interpreter languages and their various frameworks can be written in various ways to make it a language of its own, so it is hard to tell if anyone ever masters all of that.

20 years ago the question was which license most employers bought and then you'd be stuck with that.

Quote
The thing is, as an electronics engineer, which one should I learn most!?
- Assembler/VHDL/Verilog to understand the hard basics and solve problems in realtime environments
- A high level language to understand the abstractions from Assembler and be more productive in doing so (functionality implemented per time)
- An interpreter language to make tasks comfortable, work with huge amounts of data, convert data between various formats and such
Support your local planet.
 

Offline techman-001

  • Frequent Contributor
  • **
  • !
  • Posts: 748
  • Country: au
  • Electronics technician for the last 50 years
    • Mecrisp Stellaris Unofficial UserDoc
Re: Too many programming languages?
« Reply #44 on: September 25, 2019, 10:43:06 am »
--------------------------------- ANTI TROLL MESSAGE ------------------------------
I don't know from which planet Mr Forth came and which rock he crawled under but in 25 years and 5 companies experience as an embedded software engineer with EE education I never had to use it.
It is also not mentioned in any top 10 embedded programming languages so I just label it as trolling and personal preference.

https://www.fossmint.com/programming-languages-for-embedded-systems/

trolling noun (INSULTING)
the act of leaving an insulting message on the internet in order to annoy someone:
https://dictionary.cambridge.org/dictionary/english/trolling

Based on the definition of 'trolling' by dictionary.cambridge.org, I think the troll here is you.



 

Offline Kjelt

  • Super Contributor
  • ***
  • Posts: 6460
  • Country: nl
Re: Too many programming languages?
« Reply #45 on: September 25, 2019, 11:11:38 am »
Well another definition of trolling is : the act of trying to catch fish by pulling a baited line through the water behind a boat:

You keep on and on going about forth, no one is biting.
It is an interesting but not very popular language, not in the top 10 of embedded languages perhaps somewhere around rank 25 and it is not worth mentioning to someone serious about learning one or two relevant embedded software languages.
 
The following users thanked this post: Sal Ammoniac, nugglix

Offline RoGeorge

  • Super Contributor
  • ***
  • Posts: 6203
  • Country: ro
Re: Too many programming languages?
« Reply #46 on: September 25, 2019, 11:33:24 am »
VHDL and Verilog are not programming languages, those are for describing digital schematics.

HDLs (Hardware Description Languages) does not execute line by line, like a programming language, and they use different concepts than programming languages.  HDLs describe a digital schematic (logic gates, clocks, flip-flops, etc.), and not an algorithm.  In a digital schematic everything run at once, in parallel.  There is no order of execution that starts from the top of the first code line to the bottom line, like there is in programming languages.

It is just a coincidence that HDLs are made out of text lines, similar with the source code of a program, but they are very different and hard to learn.  Leave HDLs aside at the beginning.
« Last Edit: September 25, 2019, 11:48:57 am by RoGeorge »
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19517
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Too many programming languages?
« Reply #47 on: September 25, 2019, 11:42:09 am »
VHDL and Verilog are not programming languages, those are for describing digital schematics.

Ah, the Humpty Dumpty approach to "programming language", viz
Quote
“When I use a word,' Humpty Dumpty said in rather a scornful tone, 'it means just what I choose it to mean — neither more nor less.' 'The question is,' said Alice, 'whether you can make words mean so many different things.' 'The question is,' said Humpty Dumpty, 'which is to be master — that's all.”

You need to understand the difference between "structural" and "behavioural" HDL code.


Quote
HDLs (Hardware Description Languages) does not execute line by line, like a programming language.  They are very different and hard to learn.  Leave HDLs aside at the beginning.

HDLs are not hard. They are very different, that's precisely why learning them is beneficial.

The concepts and mentality embodied in HDLs are becoming more and more important in a multicore/multiprocessor/distributed world. It is vital that any electronic and embedded engineer understands FSMs, and the limits of what can and cannot be known in a world based on distributed computation.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline dave j

  • Regular Contributor
  • *
  • Posts: 128
  • Country: gb
Re: Too many programming languages?
« Reply #48 on: September 25, 2019, 11:50:32 am »
Well another definition of trolling is : the act of trying to catch fish by pulling a baited line through the water behind a boat:

You keep on and on going about forth, no one is biting.
It is an interesting but not very popular language, not in the top 10 of embedded languages perhaps somewhere around rank 25 and it is not worth mentioning to someone serious about learning one or two relevant embedded software languages.
I think it's more extreme fanboyism/evangelical zeal rather than trolling.

Suggesting Forth as the language to learn if someone wants a career in embedded development is like suggesting Smalltalk to someone who wants to work in financial services. Sure some places use it but you'll be severely limiting the number of companies who'd want to employ you.

Learn a mainstream language (C for embedded) so you've got something you can fall back on before you experiment with obscure stuff with limited job opportunities.
I'm not David L Jones. Apparently I actually do have to point this out.
 
The following users thanked this post: Kjelt

Offline techman-001

  • Frequent Contributor
  • **
  • !
  • Posts: 748
  • Country: au
  • Electronics technician for the last 50 years
    • Mecrisp Stellaris Unofficial UserDoc
Re: Too many programming languages?
« Reply #49 on: September 25, 2019, 12:00:49 pm »
Well another definition of trolling is : the act of trying to catch fish by pulling a baited line through the water behind a boat:

You keep on and on going about forth, no one is biting.
It is an interesting but not very popular language, not in the top 10 of embedded languages perhaps somewhere around rank 25 and it is not worth mentioning to someone serious about learning one or two relevant embedded software languages.

It's a pity you seem unable to remember the OP's posts. I have reproduced them in full so you can see the OP does not mention "top 10 of embedded languages", "ranking", "relevant" or "serious". These are your interpretation of the OP's posts.

Forth is a good choice for a STM32 IMU *especially* troubleshooting I2C.

You could demonstrate technical reasons why you believe Forth is a bad choice and whatever you're advocating is a good one as the OP may appreciate the information in his decision making process. The OP may not be impressed with your mantra of "popular", "top 10 ranking from a Internet site" and so on.

At least you're not pushing Arduino.

OP Original:
When it comes to learning programming languages, I'm often overwhelmed. The currently popular ones include but not limited to C, C++, C#, Java, Python, etc. You name it, you gotta learn them!
I think one should master one specific programming language, rather than being an expert of all.
The thing is, as an electronics engineer, which one should I learn most!?
OP Followup:
My purposes of learning programming languages:
1. To make my STM32 IMU project.
          - Schematic and PCB layout done.
          - Parts soldered
          - Troubleshooting its I2C to read RX data on my terminal window  :palm:

2. To make a game like Diablo III.
          - Do I learn C, C++ to make it? I know, it's a huge project. 
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf