Author Topic: Which programming languages do you use most?  (Read 20382 times)

0 Members and 2 Guests are viewing this topic.

Offline westfw

  • Super Contributor
  • ***
  • Posts: 3098
  • Country: us
Re: Which programming languages do you use most?
« Reply #25 on: August 08, 2013, 10:56:48 pm »
A lot of "modern programming" consists not of understanding the programming language itself, but in knowing about all the "usual libraries and accepted techniques."   So knowing C or C++ is not enough; you need to know how to use CMSIS or ASF (and when not to), POSIX and which parts aren't present on your particular chip, the intricacies of the preferred RTOS, OS, or proprietary environment, or the currently licensed graphics libraries and how to use them to create a GUI app that will fit seamlessly on the users desktop/tablet/phone without causing user pain.  (consider, for instance, CADSoft's initial release of EAGLE on the MAC, which was more-or-less a recompilation of their linux version to run under X windows using the linux infrastructure that exists on MacOS.  I thought it was a pretty clever move, technically, and I wish more companies would do the equivalent, but it was definitely NOT a "Mac Application.")

(This also shows up when you get simplified "tutorials" for a language.   I've been doing the online "CodeCademy" "class" for Python, and I think I've got the basics of the core language.   Which qualifies me to go work for a company that does their major work in pythong NOT AT ALL, really.  Or, way back when, I was able to modify/fix a file archiver that was written in MacLISP, but I'm not at all a LISP programmer.)

Finally, understanding the application can be more important than understanding the programming language.   You end up seeing an unfortunate number of awful programs written by great coders who didn't understand the problem, and a similar number of  awful programs written by problem experts that didn't know enough about programming.  (The latter frequently get masked by the increased performance of computers.)

"Good" employers will have realistic expectations; just because you graduated with a 4.0 average doesn't mean you can write android applications immediately, but having only written iPhone apps doesn't mean you won't come up to speed on Android pretty quickly.  (Or PIC vs AVR vs ARM.)  (If you can get past the HR department screening software.   (Which is why colleges with placement services are so valuable.  A company can build of a relationship with a university so that they KNOW what they're getting when someone has a B average but flunked EE311.))
 

Offline Tris20

  • Regular Contributor
  • *
  • Posts: 84
  • Country: gb
Re: Which programming languages do you use most?
« Reply #26 on: August 09, 2013, 09:52:11 am »
Really good post there west. Very informative. Correct me if I'm wrong here but it sounds like you're suggesting that programming is more "can you get the job done using whatever tools you can get your hands on?" than "are you a good programmer?" which would make sense. I'd imagine though that having a good grasp of the language as early as possible is a major bonus though. Looking through these posts I'm certainly going to put in the effort to up my C knowledge over the next few years.

On a side note could someone explain there difference in layman's terms between C,C++ and C#?
I've looked it up a few times and I still don't really understand the difference between them and why you would use one in preference to the other?

Also, do you guys ever use much Matlab?
 

Offline ptricks

  • Frequent Contributor
  • **
  • Posts: 670
  • Country: us
Re: Which programming languages do you use most?
« Reply #27 on: August 09, 2013, 10:44:06 am »
embedded
--------
C - XC sereis from Microchip
ASM

Oshonsoft Basic - really easy to use basic that compiles well and  has very similar code between versions for AVR,PIC,8085,z80
http://www.oshonsoft.com/

Coocoox COS for the ARM stuff
http://www.coocox.org/CoOS.htm

PC
-----------------
PurerBasic - simple, fast, cross platform, one license, about $100, gets you linux, windows, and mac support. Programs are compiled so they don't need external files, or libs or dll files, just an exe to run .
http://www.purebasic.com/
 

Offline Kremmen

  • Super Contributor
  • ***
  • Posts: 1283
  • Country: fi
Re: Which programming languages do you use most?
« Reply #28 on: August 09, 2013, 07:07:32 pm »
[...]
On a side note could someone explain there difference in layman's terms between C,C++ and C#?
I've looked it up a few times and I still don't really understand the difference between them and why you would use one in preference to the other?

Also, do you guys ever use much Matlab?

C and C++ are traditional programming languages that are compiled (or cross-compiled) into native machine code for the target processor. Their difference is that C++ is an evolution of C, introducing the concept of objects http://en.wikipedia.org/wiki/Object-oriented_programming, in the form of classes. C++ is therefore an object-oriented language with numerous further developments from C, that are not so directly related to OO concepts. C and C++ are available in principle for any environment, subject only to the availability of a compiler. The GNU Compiler Collection (GCC) that we all have learned to love is available for a huge number of relevant environments, specifically for PC, ARM and most other common MCU mfgs and families. It is equally capable of compiling C and C++ as needed with numerous options directing code output.
C# is Microsofts proprietary language, similar to Java in concept. Both Java and C# are normally compiled into pseudocode, i.e. not the primitive level machine code. The pseudocode is then executed by a runtime environment that also manages the resources and security of the running environment. This brings several benefits in that a misbehaving program has far less chances of adversely affecting independent software just sharing the hosting computer system. A heavy server can run a large number of independent, mission critical applications and this kind of isolation is highly desirable. Of course same is achievable for C and C++ code as well, but with other means and perhaps not quite so "automatically".
That would be the "layman" explanation. There are of course further details but this would offhand be the main difference.
« Last Edit: August 09, 2013, 07:10:04 pm by Kremmen »
Nothing sings like a kilovolt.
Dr W. Bishop
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 3098
  • Country: us
Re: Which programming languages do you use most?
« Reply #29 on: August 09, 2013, 10:23:23 pm »
Quote
programming is more "can you get the job done using whatever tools you can get your hands on?" than "are you a good programmer?" which would make sense.
I would put those phrases closer to synonymous; you could replace the second one with "are you a good XX programmer" where XX is some specific language.

Quote
I'd imagine though that having a good grasp of the language as early as possible is a major bonus though.
Yes, probably.  Although my argument implies (I think) that you should have a "good grasp" of more than one language.  But, you know, if you have to start arguing with your co-workers about how your odd program construct really is "correct" because of "paragraph 11.3.2 of the specification where it says...", then you probably should have written it differently.  "Obfuscated code" is sorta neat, but I don't think that being able to write it, or decipher it, is a valuable real-world skill.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18271
  • Country: nl
    • NCT Developments
Re: Which programming languages do you use most?
« Reply #30 on: August 09, 2013, 11:26:35 pm »
IMHO programming is more than just knowing a language. To get some actual work done you need libraries. Getting to know the libraries takes a lot of time.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline WarSim

  • Frequent Contributor
  • **
  • Posts: 514
Which programming languages do you use most?
« Reply #31 on: August 09, 2013, 11:52:20 pm »
Being a good programer is an ability in dependant of any language. 
Knowing the white paper of a language adds to your toolbox. 
Knowing an environment (eg libraries etc) enables you to deploy your skills. 
All three are needed for success. 

I get a kick out of comments like.  "C++ introduced the idea of OOP".  OOP was the natural progression of modularization that we the systems programers employed.  Serialization was the natural progression of dynamic resource management.  What C++ did was offer an excellent language platform to automate allot of the management burden from the programer.  We the systems programers or yore, where using serialization before JAVA and OOP before C++.  The initial adopters saw C++ as an excellent tool for existing practices.  Yes it is true that C++ is used in schools to introduce OOP because it is the simplest construct to teach it, but that is method not mode. 
 

Offline boz

  • Regular Contributor
  • *
  • Posts: 56
  • Country: nz
    • Roving Dynamics Ltd
Re: Which programming languages do you use most?
« Reply #32 on: August 18, 2013, 05:52:30 am »
Embedded: C (mplab 32 and 8 bit)
PC: Delphi or Lazarus
The Wife: Chocolates  :)
Fearless diver and computer genius
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 892
  • Country: us
Re: Which programming languages do you use most?
« Reply #33 on: August 18, 2013, 06:21:04 am »
The Wife: Chocolates  :)
Try giving her a foot massage.

Oh yeah.  >:D
 

Offline Otatiaro

  • Regular Contributor
  • *
  • Posts: 85
Re: Which programming languages do you use most?
« Reply #34 on: August 19, 2013, 12:06:31 pm »
Hello,

I guess I'm not exotic ... C for embedded (ARM ASM occasionally for low level stuff) and C# for desktop.
That's what I do most and what I enjoy most.

I can write code in tens of language, from PIC16 ASM to lisp/prolog, but as previously said, the language is just a tool to express yourself, not the way you do it. At the end of the day, it's all compiled to be processed by the same hardware.

Knowing the platform (processor) and knowing the inner working of the compiler (I use the compiler to write ASM code faster, I don't use a compiler because I couldn't do it without) is a must to write efficient code. Always ask yourself how the compiler will compile your last line of code, and don't just make a guess, verify it.

Thomas.
 

Offline AntiProtonBoy

  • Frequent Contributor
  • **
  • Posts: 770
  • Country: au
    • Youtube Channel
Re: Which programming languages do you use most?
« Reply #35 on: August 30, 2013, 03:55:02 pm »
C, C++, Objective-C, GLSL


 

Offline rizzy

  • Contributor
  • Posts: 13
Re: Which programming languages do you use most?
« Reply #36 on: September 08, 2013, 08:14:50 pm »
Please don't take it too seriously but I couldn't withstand   ;)


 

Offline WarSim

  • Frequent Contributor
  • **
  • Posts: 514
Which programming languages do you use most?
« Reply #37 on: September 08, 2013, 09:32:58 pm »

Please don't take it too seriously but I couldn't withstand   ;)



Great a PTCD flashback :)
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12068
  • Country: gb
    • Mike's Electric Stuff
Re: Which programming languages do you use most?
« Reply #38 on: September 08, 2013, 10:17:06 pm »
Mostly C, occasional assembler, some VB6, a bit of VHDL.
I used to use Turbo Pascal under DOS a lot.
From what I know about C++, it seems a good idea in principle but too resource-heavy for small microcontrollers.

Surprised to see a  few other VB6'ers  - thought I was the only one who was that unfashionable... I avoid doing PC SW whenever possible, but VB is very quick for knocking up anything from a quick hack to test some hardware to producing reasonable-looking end-user utils to throw files quickly out of USB serial ports.
Performance is OK but has some infuriating quirks (no unsigned types, no scroll-mouse support), and a PITA to deploy (DLLs /install needed). And if I need to give a customer source, they can't officially buy VB6 for themselves.

   
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline dr.diesel

  • Super Contributor
  • ***
  • Posts: 2149
  • Country: us
  • Cramming the magic smoke back in...
Re: Which programming languages do you use most?
« Reply #39 on: September 08, 2013, 10:20:37 pm »
Surprised to see a  few other VB6'ers

If you ever find yourself needing something very similar under Linux, check out gambas3.  It's quite good, feature complete and like VB6, super easy.

Offline firewalker

  • Super Contributor
  • ***
  • Posts: 2347
  • Country: gr
Re: Which programming languages do you use most?
« Reply #40 on: September 08, 2013, 10:24:26 pm »
Mostly C. Also Python, PyQt and KDE framework stuff. VB6, (a touch of VB .NET) and Gambas. Once I used Basic4Android. Good stuff for rapid development.

For VB6 and mouse scroll:
http://support.microsoft.com/?id=837910
http://download.microsoft.com/download/e/f/b/efb39198-7c59-4ace-a5c4-8f0f88e00d34/vb6mousewheel.exe

Alexander.
Become a realist, stay a dreamer.

 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12068
  • Country: gb
    • Mike's Electric Stuff
Re: Which programming languages do you use most?
« Reply #41 on: September 08, 2013, 10:26:46 pm »
Mostly C. Also Python, PyQt and KDE framework stuff. VB6, a touch of VB .NET and Gambas. Once I used Basic4Android. Good stuf dor rapid development.

For VB6 and mouse scroll:
http://support.microsoft.com/?id=837910
http://download.microsoft.com/download/e/f/b/efb39198-7c59-4ace-a5c4-8f0f88e00d34/vb6mousewheel.exe

Alexander.
Tried a few things including that, but have never managed to get mouse scrolling  working reliably with the mouse I use, especially under Win7
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline c4757p

  • Super Contributor
  • ***
  • Posts: 7805
  • Country: us
  • adieu
Re: Which programming languages do you use most?
« Reply #42 on: September 08, 2013, 10:27:32 pm »
From what I know about C++, it seems a good idea in principle but too resource-heavy for small microcontrollers.

Probably depends on the platform. GCC adds no extra overhead (not one byte) when compiling C++ for AVR. Obviously you pay for whatever features you use. For some applications, I find namespaces and function/operator overloading to be quite useful, and basic class methods don't use any extra space over functions which operate on structs, so that can be handy as well, if only to clean up the code a bit.
No longer active here - try the IRC channel if you just can't be without me :)
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12068
  • Country: gb
    • Mike's Electric Stuff
Re: Which programming languages do you use most?
« Reply #43 on: September 08, 2013, 10:34:17 pm »
From what I know about C++, it seems a good idea in principle but too resource-heavy for small microcontrollers.

Probably depends on the platform. GCC adds no extra overhead (not one byte) when compiling C++ for AVR. Obviously you pay for whatever features you use. For some applications, I find namespaces and function/operator overloading to be quite useful, and basic class methods don't use any extra space over functions which operate on structs, so that can be handy as well, if only to clean up the code a bit.
I have a deep mistrust of anything that  takes me further away from the underlying assembly.... VHDL makes me itch.
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline c4757p

  • Super Contributor
  • ***
  • Posts: 7805
  • Country: us
  • adieu
Re: Which programming languages do you use most?
« Reply #44 on: September 08, 2013, 10:38:18 pm »
That's because it's not Verilog ;)

Maybe it helps to have studied compilers a bit before - if I'm trying to squeeze a lot into a small space, I'm usually pretty good at predicting where the compiler will emit stinky assembly. Then I just replace that section with an inline asm statement and a little comment describing it.

If I'm not trying to squeeze, I really don't care what the compiler craps out as long as it runs!
No longer active here - try the IRC channel if you just can't be without me :)
 

Online IanB

  • Super Contributor
  • ***
  • Posts: 9608
  • Country: us
Re: Which programming languages do you use most?
« Reply #45 on: September 08, 2013, 10:45:19 pm »
I have a deep mistrust of anything that  takes me further away from the underlying assembly.... VHDL makes me itch.

That's a valid concern with C++. A C compiler generates pretty much exactly the code you wrote, with nothing added and no hidden surprises. With C++  there is a higher level of abstraction (which is good, in general), but it does mean the compiler can generate and insert extra code that you didn't actually write yourself.

On the other hand, if you want exactly the same functionality from your program when written in C you would have to write by hand the extra code that the C++ compiler generates automatically. So another way of looking at it is that if you really want your program to have those functions, then a C++ compiler can simplify your task. A C++ compiler doesn't add unnecessary overhead, it just adds the necessary code to do exactly what you ask it to do. If you don't ask the C++ compiler to do clever things there will be no bloat.
I'm not an EE--what am I doing here?
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12068
  • Country: gb
    • Mike's Electric Stuff
Re: Which programming languages do you use most?
« Reply #46 on: September 08, 2013, 10:49:55 pm »
That's because it's not Verilog ;)
Probably right, but I don't do enough FPGA stuff to justify re-learning, and even with Verilog you have no hope of looking at RTL or the P&R'd design and finding a bug in your source or the compiler. Except maybe for CPLDs, which are simple enough to be able to spot when it's using more resources than it should.
Quote
Maybe it helps to have studied compilers a bit before - if I'm trying to squeeze a lot into a small space, I'm usually pretty good at predicting where the compiler will emit stinky assembly. Then I just replace that section with an inline asm statement and a little comment describing it.

If I'm not trying to squeeze, I really don't care what the compiler craps out as long as it runs!

I'm typically optimising for speed rather than size - I often look at the assembly it generates and tweak the C code to improve it - it took me a long time to move from assembly to C, so I often write code which treats the C compiler as little more than a glorified macro-assembler!
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline firewalker

  • Super Contributor
  • ***
  • Posts: 2347
  • Country: gr
Re: Which programming languages do you use most?
« Reply #47 on: September 08, 2013, 10:50:06 pm »
Tried a few things including that, but have never managed to get mouse scrolling  working reliably with the mouse I use, especially under Win7

TBH never tried VB6 on a non WinXP system. After that addon I had no problems.

Alexander.
Become a realist, stay a dreamer.

 

Offline firewalker

  • Super Contributor
  • ***
  • Posts: 2347
  • Country: gr
Re: Which programming languages do you use most?
« Reply #48 on: September 08, 2013, 10:53:58 pm »


:P :P :P

Alexander.
Become a realist, stay a dreamer.

 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12068
  • Country: gb
    • Mike's Electric Stuff
Re: Which programming languages do you use most?
« Reply #49 on: September 08, 2013, 10:55:04 pm »
A C compiler generates pretty much exactly the code you wrote, with nothing added and no hidden surprises.
..apart from when a compiler bug makes it decide to not save quite all context it should in the ISR code..
Memory allocation is one of the more useful things a C compiler generally does better than even a good assembly programmer,  but if it goes wrong, it can be a nightmare to track down.
   
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf