What programming language should I use


tarator

Very Active Member
Joined
Jun 4, 2016
Messages
151
Age
36
Location
Vienna
Yeah, and c++ also has a similar periodicity, as java, and probably also caused by student.
What is fun, is that there is an inverse periodicty on JavaScript, where students are probably building their personal website during time off :)

I don't think this conclusion is 100% right. stackoverflow is not just used by beginners. I'm using stackoverflow a lot and I'm by no means a beginner in programming Java. I'm using it to get information about specific frameworks and libraries. There's a lot information there which is simply not covered by the frameworks documentation, or at least hard to find. (Some docs have 1000+ pages)

Of course there are many beginners questions like "How can I concatenate two strings in language XY", but also there are lots of questions like "How can I use the Feature F1 in Framework FWX, when utilising library L_Foo but with feature Feat_Smach deactivated...."

Latter are not questions about the Programming language itself, but questions regarding some higher level libraries of a specific programming language.
 

Linux-SWAT

Hardcore Member
Joined
Feb 13, 2010
Messages
8,798
Julia 0.5 is included in the Slackware for Pandora rootfs BTW.
The first launch/compilation is always slow, after it's ok.
 

kabaiakh

Very Active Member
Joined
Aug 7, 2015
Messages
157
Location
Gone.
Lisp is beautiful in terms of design (as a starter language too) as well.

I roughly remember a teacher saying it was a good language to start with because syntax was quickly learned, so students didn't get bored spending (wasting ?) time learning it.
 

NOP

Member
Joined
May 2, 2017
Messages
46
At work I mostly use c++, but don't relay like the full blown everything should be inside some class, every pointer should be smart and templates everywhere style. I have way more fun using c, so I use it for my private projects.
I think a lot of the c++ features are not that great, or get misused all the time and it would be better to dial there use down to a reasonable level.
 

Silent-Hunter

Hardcore Member
Joined
May 29, 2010
Messages
3,442
I learned Java in high school, but I didn't keep it up, and now I'm having to relearn it. I also taught myself some Fortran.
 

rygD

Nihilistic Mystic
Joined
Feb 28, 2014
Messages
7,481
Location
Everywhere
I feel the need for a small word of caution on this one. Whilst I like Python and it's fast becoming the language of choice in many areas (data processing and machine learning being two of the big ones) I wouldn't necessarily recommend it to anyone as a first language. It's just a bit too loose in what it asks the programmer to do (non-static typing etc) that the step up to a language after Python seems tricky. Certainly I'd recommended it as a second language to anyone, if you are learning for the first time I'd personally recommend either C for procedural (C++ is just too big to start with) or Java for Object Oriented (or C# if you aren't Microsoft opposed but I don't think this board is the place for that sort of recommendation ;) ), can't recommend a functional language yet as I'm still trying to force Scala into my brain. There is a reason those are still the languages of choice for teaching in HE.

Disclaimer : I earn my living teaching Engineers (of the Electronic and Robotic variety) how to code (after many years of teaching CS grads to code).

Alternative viewpoint : Bah! all you kids should learn to code properly like I did with Pascal and Prolog (and a bit of COBOL if you didn't behave).
I took a pretty lousy Java class (didn't really learn anything, but I made some cartoons...because that is how you teach programming at the college level), so maybe I should dig a bit deeper into it. C has been what I want to learn since I took a serious look at the options, and as a *nix person it seemed kinda practical, not to mention that it seems the best modern way to start off (with regard to looking at and thinking about things the right way, and not starting at the bottom). But what do I know. I pretty much forgot most of what I ever learned about programming over the...decades!?
I don't think this conclusion is 100% right. stackoverflow is not just used by beginners. I'm using stackoverflow a lot and I'm by no means a beginner in programming Java. I'm using it to get information about specific frameworks and libraries. There's a lot information there which is simply not covered by the frameworks documentation, or at least hard to find. (Some docs have 1000+ pages)

Of course there are many beginners questions like "How can I concatenate two strings in language XY", but also there are lots of questions like "How can I use the Feature F1 in Framework FWX, when utilising library L_Foo but with feature Feat_Smach deactivated...."

Latter are not questions about the Programming language itself, but questions regarding some higher level libraries of a specific programming language.
However the peaks are at times that suggest student introduction and questions, as they even fall back down later in the semester when those students will have a better handle on the languages, or know where to find the info they need. I also purpose that the JS peak in summer might be from one or more of the schools offering those classes in the summer (some colleges/universities require attendance during the summer, with some required courses only offered at that time, as were some for one of my degrees).

My point is that those aren't the only question, and I don't think ptitSeb was seriously suggesting that. It is more likely that some of the "popularity" on that graph, and definitely the peaks in the fall and spring semester, comes from students.
 

NOP

Member
Joined
May 2, 2017
Messages
46
@rygD C is a nice language if you have some basic programming knowledge. If you are used to java then i would not recommend starting to use c++ without trying oop in c (making your own vtable and stuff) which helps to understand how c++ works. I think in java every method is virtual by default and you can overwrite it in a derived class and it just works, so you don't even have to know what virtual means but in c++ you have to. Especially interfaces which in c++ are normal classes containing pure virtual methods.
But keep in mind that some of the POSIX APIs are not that nice to use directly especially compared to the default java stuff. Connecting to some server is a pain, and when dealing with files there is some nasty 256 byte buffer limit for filenames which you have to work around.
So i would recommend starting with C and at some point switching to c++ so you can use more library's.
 

rygD

Nihilistic Mystic
Joined
Feb 28, 2014
Messages
7,481
Location
Everywhere
My background is like this:
-Basic BASIC skills of a level to be a nuisance, and probably just a little more than enough to endlessly loop "HA " on a display.

-An extremely brief period in a class, and with materials, in an intro level C++ class (also my first time hands on with Linux)

-Occasional looking into various languages, how they work, and looking at real-world (not academic) examples I found in the wild, which were sometimes even annotated enough for me to figure out what I was looking at

-Minor shell scripting (I still suck at this, not that I try to get better)

-Semester long Java class where we made cartoons to learn how things work, and eventually we made a few very simple programs.

That last one was a couple years ago. I wouldn't say I have anything more than a passing familiarity with any language. I might be able to identify the language if I look at it, with heavy emphasis on the might.

If I ever moved in to C++ it would only be after I am confident enough in my abilities with C that I would be willing to call myself a programmer (so probably never unless I get a lot of workplace experience), and even then I have something else I would check out and mess around with first, going lower rather than higher, so, yeah. I think I would probably also try out python before C++, and after C. Actually, I would probably make a decision at that point which direction would be best to go, and I like to make things difficult for myself.

Should we really be mucking up this thread with this kind of stuff? I know we have a new news thread, but people that are just finding out about the Pyra, or those that have been away, might not appreciate all the off-topic stuff.

Speaking of which, what's the status of the testing this thread is named after? I would really like to know, because Pandora.
 

NOP

Member
Joined
May 2, 2017
Messages
46
Speaking of which, what's the status of the testing this thread is named after?
I would think as long as we don't hear anything bad, nothing has failed so far which is good.

[...] but people [...] might not appreciate all the off-topic stuff.
Who does not like talking about programming languages :-#
 

PCXT

Very Active Member
Joined
Sep 14, 2016
Messages
263
Age
32
I started my programming with Pascal. Then Delphi. Then I even made a few programs in it, like manager for T64 Commodore files.
After Delphi went to more enterprise solutions and Lazarus became unusable for smaller projects because of dependency hell, I started to look for something other. I had some background in C/++, as well as Java, but I decided to avoid Java to run from things which tend to be complicated only to create need to hire some code magicians, not offering any flexibility from its complexity. So many "enterprise solutions" end up this way.
So I ended with C++ and Qt not using full C++ capabilities, but enough. Dependency hell, yes, but smaller. I can re-build libraries to smaller versions if I want.
If something needs to be done fast, then I recommend shell scripts or Perl. If it goes out of control and develops to application, then Perl::Tk.
I never tried with Python as I considered it not a strict programming language. IMHO programming language should make programmer think more strictly about program as well as allow to build some methods of thinking about e.g. data organization, routines architecture, etc. Python doesn't fit in this case well. There are some people who like it, who see this as a way to expand a program, but I always find lots of ways to optimize such programs.
P.S. Is there any Moderator who can split our programming language talk into a thread in e.g. OT section? :)
 

Caine

Hardcore Member
Joined
Jun 5, 2008
Messages
4,138
Location
Netherlands
Not entirely sure this is 100% the correct order, but for me it was roughly:

C, Pascal, Delphi, Assembly, Python, Java, Haskell, Emacs Lisp, Common Lisp, C++, Objective C, (a bit of Matlab), C#, Ada

I have looked at some other languages such as Clojure, Scala, Nim, Go, Erlang, Lua, NesC, Perl and a couple of shell scripting languages. But I have used none of them extensively on larger projects.

C++ would be my least favourite language of them all. I think the language is just too much of a messy clusterfuck syntax-wise.

And I agree this stuff better belongs in the OT section.
 

spud42

Very Active Member
Joined
Aug 22, 2009
Messages
739
Age
59
Location
Brisbane,Australia.
BASIC, Z80/6502 assembly code, FORTRAN in uni, back to Z80/6502,a departure for 3 years as a CNC programmer with hand coded Gcode on a LASER cutter circa 1983 then x86 assembly code 8088 era, then a friend and i taught ourselves Turbo Pascal 4...... and haven't done any since then. ya all talk a foreign language to me now...lol
 

Pyramancer

Fairly Idle Member
Joined
Feb 4, 2017
Messages
232
Age
121
I roughly remember a teacher saying [Lisp] was a good language to start with because syntax was quickly learned, so students didn't get bored spending (wasting ?) time learning it.
Which frees up their time and attention for the necessary incessant counting of parentheses. :p
 

Caine

Hardcore Member
Joined
Jun 5, 2008
Messages
4,138
Location
Netherlands
I may be wrong, but I always get the strong impression that the biggest parenthesis balancing complaints come from people who haven't written a line of lisp in their life.

With any slightly lisp aware editor this totally becomes a non-issue.
 

kabaiakh

Very Active Member
Joined
Aug 7, 2015
Messages
157
Location
Gone.
Which frees up their time and attention for the necessary incessant counting of parentheses. :p

Yes, of course.
I guess every language has its disadvantages.
They could as well bang their head against the walls trying to figure out what is in the stack
or not seeing this #!@ >:=( unbreakable space that break the stuctural indenting.
Excepted from my own pathetic coding life.
"He that is without core dump among you, let him first cast a NULL at me." ;=p
 

rygD

Nihilistic Mystic
Joined
Feb 28, 2014
Messages
7,481
Location
Everywhere
It is great to see that so many people went with assembly early on. 6502 is one of the options I would look at after c, but @spud42 mentioned 8088, and I have a machine I want to give more love, so that would be an option, or, more practically in the mainstream modern world, ARM, depending on what is going on with the Pyra (or it successor), and the community, or smartphones. But that is all still in the future a bit, and I have a bunch of other things I need to finish up or flesh out before I can dedicate regular time to programming.

There is also something I am waiting on that could change things in a number of ways, and I could end up with more free time, or none. With more I have a couple technical certs I want to work on, then I will probably move on to programming.
 
Top