Looking for a new programming language to learn

Deleted member 373057

Well-Known Member
OP
Member
Joined
Oct 5, 2015
Messages
462
Trophies
0
XP
561
Country
Canada
I'll get to the point: I want to learn another programming language well. Right now I would say I'm pretty good at: C and Python, although I've used Java and C++ quite a bit as well.

I was thinking of trying Rust or D, but wasn't entirely sure. Maybe a functional language like Haskell? I really don't know.

Hit me up with a language (and why), folks.
 

Deleted member 373057

Well-Known Member
OP
Member
Joined
Oct 5, 2015
Messages
462
Trophies
0
XP
561
Country
Canada
Dunno, depends on what you want to do. Programming languages aren't that different from each other once you learn a couple of them, but some are more fit for a certain purpose.
I'm more of a low-level programmer, but I want to learn something different. If I'm completely honest I want to learn a functional language. Can you recommend any?
 

Rusb

Well-Known Member
Member
Joined
Apr 17, 2014
Messages
178
Trophies
0
XP
958
Country
I would go with x86 inline assembly and x86 assembly.

Why?
The most obvious reason: Optimization.
Yes, the compiler does a good job optimizing code but it's not always magic. Learning machine code can be helpful for:

-Understanding at a low level how things work.
-Introducing you to OS/microsystems development
-Speedup programs
-RE, is not only useful for hacking purposes (modding etc...) but sometimes you have to debug things that doesn't have debug symbols nor you have the source... have fun.

And obviously, the most important part. SIMD.

The "normal code optimizations" are done quite well by te compiler, but the compiler usually don't use SIMD. So if you learn to use that instructions (Trust me, is not easy because the documentation in some cases are a little... (hello arm))
you can speedup things to run loooot faster with SIMD, there are restrictions to the use of that instructions but you can learn them on the go.

(Note that there are macros for use SIMD without assembly)

Haskell is a good PL to learn, different and pretty fast.


P.D. Just don't try to build ALL in assembly, use C/C++, you can create symbols in a .s (assembly code) and then compile it and use the symbols (functions, etc...) directly on the c/c++ code.
Also, inline asm is a good way to program, but remember, portability will not be possible to other archs. So you would like to have two types of functions, the assembly one and code one, use IFDEF or something like that
 
Last edited by Rusb,

Deleted member 373057

Well-Known Member
OP
Member
Joined
Oct 5, 2015
Messages
462
Trophies
0
XP
561
Country
Canada
I would go with x86 inline assembly and x86 assembly.

Why?
The most obvious reason: Optimization.
Yes, the compiler does a good job optimizing code but it's not always magic. Learning machine code can be helpful for:

-Understanding at a low level how things work.
-Introducing you to OS/microsystems development
-Speedup programs
-RE, is not only useful for hacking purposes (modding etc...) but sometimes you have to debug things that doesn't have debug symbols nor you have the source... have fun.

And obviously, the most important part. SIMD.

The "normal code optimizations" are done quite well by te compiler, but the compiler usually don't use SIMD. So if you learn to use that instructions (Trust me, is not easy because the documentation in some cases are a little... (hello arm))
you can speedup things to run loooot faster with SIMD, there are restrictions to the use of that instructions but you can learn them on the go.

(Note that there are macros for use SIMD without assembly)

Haskell is a good PL to learn, different and pretty fast.


P.D. Just don't try to build ALL in assembly, use C/C++, you can create symbols in a .s (assembly code) and then compile it and use the symbols (functions, etc...) directly on the c/c++ code.
Also, inline asm is a good way to program, but remember, portability will not be possible to other archs. So you would like to have two types of functions, the assembly one and code one, use IFDEF or something like that
Thanks, appreciate the response.
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,374
Trophies
4
Location
Space
XP
13,978
Country
Norway
I'll get to the point: I want to learn another programming language well. Right now I would say I'm pretty good at: C and Python, although I've used Java and C++ quite a bit as well.

I was thinking of trying Rust or D, but wasn't entirely sure. Maybe a functional language like Haskell? I really don't know.

Hit me up with a language (and why), folks.
C#? It's quite similar to Java in many ways so it should be a breeze to learn.
I find it really quick to code in, which is why I like it so much.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,375
Country
United Kingdom
"Rust or D ... Haskell"
Don't do it. It sounds like you have already made it so no great need to pick either an academic language or one that failed to launch (Rust and D certainly have their fans and if you are needing to get into "safe" programming then there are worse choices). I try always to pick a language that people know and use, and by similar token I would considerably rather have an obfuscation contest than watch someone try to do something in an esotetric language.

Personally I would double down on what you already know -- bit hazy on crypto and security? Sort that out. Don't know how to make awesome GUIs? Any of those languages do well for it. Don't know your 3d APIs? Well now, I am not sure about python but the rest can speak to directX or opengl well enough. You say you have done a bit of C++ and I will believe it, however a bit of C++ is enough to hang you if you have to use it in anger. There is some really subtle stuff it brings to the table and if you are mainly a C kind of guy it definitely will have things to trip you up. Assembly is not without its uses, especially if you want to go low level, debugging, hacking and such but it is increasingly sidelined (2011 or so was it when compiler intrinsics were introduced and basically bumped inline assembly into history) as it is really hard to use with a lot of modern security.

That said I might float the idea of avisynth if you are mainly looking for something fun
http://avisynth.nl/index.php/Main_Page
It is an amazing video editor but being script based not so many consider it. Said scripts make it hellishly powerful though, and being scripts are inherently self documenting, reusable and adaptable at any level you like. People tell me open source can't compete with adobe, apple and sony offerings and to that I say pah, until we start needing the crazy 3d modelling and tracking stuff (though even there you are not without options) I will go toe to toe with you using avisynth.
 

wolfmankurd

Well-Known Member
Member
Joined
Jul 20, 2013
Messages
270
Trophies
0
Age
35
XP
302
Country
Verilog, get yourself a cheap FPGA/CPLD like the MAX II from Altera as cheap as 10 bucks for board + programmer. Download Quartus II web (for free) get the version that supports MAX II / EPM240 devices and enter a new world.
If you can't be bothered to learn a HDL but want to broaden your horizon learn a more functional programming language maybe Haskell, or a lisp, maybe both with Clojure? Both have excellent free online books which are considered the definitive beginner text.

Finally no "what language should I learn" discussion would be complete without mentioning Rust, they have a great community and documentation too.

Personally I'd recommend all programmers experience a Lisp, functionally programming (like Haskell) and Clojure is a good way to do both. I also recommend Rust as a "language of the future"(TM).

Why? Well I wont lie to you and say your first job will have you banging out sythenesisable logic or even have you write some Haskell. But knowing about this programming paradigms **will** make you a better programmer and improve your C and Python (if you want them to be your home languages). If you wrestle with Rusts compiler for 6 months you will definitely learn a thing or two about what makes safe concurrent code and how to write explicit code making your intention clear to other programmers and of course the compiler. It compiles down to comparable speed as C/C++.

Other than Rust every language I've mentioned is functional, while HDLs tend to be imperative you can't really think of what they produce as imperative on a larger scale (what happens inside a clocked block is imperative but the interactions are functional -- i.e. combination logic in general is functional). In a way with HDLs you think functionally, write imperatively and make something that runs functionally...
 
Last edited by wolfmankurd,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Quincy @ Quincy:
    Usually when such a big title leaks the Temp will be the first to report about it (going off of historical reports here, Pokemon SV being the latest one I can recall seeing pop up here)
  • K3Nv2 @ K3Nv2:
    I still like how a freaking mp3 file hacks webos all that security defeated by text yet again
  • BigOnYa @ BigOnYa:
    They have simulators for everything nowdays, cray cray. How about a sim that shows you playing the Switch.
  • K3Nv2 @ K3Nv2:
    That's called yuzu
    +1
  • BigOnYa @ BigOnYa:
    I want a 120hz 4k tv but crazy how more expensive the 120hz over the 60hz are. Or even more crazy is the price of 8k's.
  • K3Nv2 @ K3Nv2:
    No real point since movies are 30fps
  • BigOnYa @ BigOnYa:
    Not a big movie buff, more of a gamer tbh. And Series X is 120hz 8k ready, but yea only 120hz 4k games out right now, but thinking of in the future.
  • K3Nv2 @ K3Nv2:
    Mostly why you never see TV manufacturers going post 60hz
  • BigOnYa @ BigOnYa:
    I only watch tv when i goto bed, it puts me to sleep, and I have a nas drive filled w my fav shows so i can watch them in order, commercial free. I usually watch Married w Children, or South Park
  • K3Nv2 @ K3Nv2:
    Stremio ruined my need for nas
  • BigOnYa @ BigOnYa:
    I stream from Nas to firestick, one on every tv, and use Kodi. I'm happy w it, plays everything. (I pirate/torrent shows/movies on pc, and put on nas)
  • K3Nv2 @ K3Nv2:
    Kodi repost are still pretty popular
  • BigOnYa @ BigOnYa:
    What the hell is Kodi reposts? what do you mean, or "Wut?" -xdqwerty
  • K3Nv2 @ K3Nv2:
    Google them basically web crawlers to movie sites
  • BigOnYa @ BigOnYa:
    oh you mean the 3rd party apps on Kodi, yea i know what you mean, yea there are still a few cool ones, in fact watched the new planet of the apes movie other night w wifey thru one, was good pic surprisingly, not a cam
  • BigOnYa @ BigOnYa:
    Damn, only $2.06 and free shipping. Gotta cost more for them to ship than $2.06
    +1
  • BigOnYa @ BigOnYa:
    I got my Dad a firestick for Xmas and showed him those 3rd party sites on Kodi, he loves it, all he watches anymore. He said he has got 3 letters from AT&T already about pirating, but he says f them, let them shut my internet off (He wants out of his AT&T contract anyways)
  • K3Nv2 @ K3Nv2:
    That's where stremio comes to play never got a letter about it
  • BigOnYa @ BigOnYa:
    I just use a VPN, even give him my login and password so can use it also, and he refuses, he's funny.
  • BigOnYa @ BigOnYa:
    I had to find and get him an old style flip phone even without text, cause thats what he wanted. No text, no internet, only phone calls. Old, old school.
  • Psionic Roshambo @ Psionic Roshambo:
    @BigOnYa, Lol I bought a new USB card reader thing on AliExpress last month for I think like 87 cents. Free shipping from China... It arrived it works and honestly I don't understand how it was so cheap.
    +1
    Psionic Roshambo @ Psionic Roshambo: @BigOnYa, Lol I bought a new USB card reader thing on AliExpress last month for I think like 87... +1