I have know and use C, Java, and Python, as well a knowledge in a *ton* of other languages, but I am trying to learn a new language. Despite any opposition I will get, these are the languages I'm thinking about:
Ada
Pascal
Go
Haskell
I have prepared my personal pros and cons for each.
Ada
PROS:
Like The Language
Gnat Programming Studio Is Nice
CONS:
Hate The Type System
Plenty Of Docs On The Language, But Not The GNAT Runtime
No Ada Forum :(
Pascal
PROS:
I Like Freepascal/Lazarus
Easy To Learn
Good Amount OF Documentation
CONS:
Flat Out Boring
Go
PROS:
Like The Philosophy
Could Become A Great Language
CONS:
No IDE's
Weird Syntax
No Standard GUI API
Haskell
PROS:
Need To Learn A Functional Language Other Than Scala
Like The Lang :)
CONS:
Few IDE's
Functional Lang's Are Weird To Me
So I was wondering If I could get some feedback from the community on these languages, and which to learn.
I'd go with Go. If you want some nice practice with it, contribute to the Lime project on github. It's a work in progress of a Sublime Text clone, but it's open source obviously.
Does Go even have graphical support yet? The only reason I haven't looked into it more is because I couldn't find a simple way to draw graphics into a window in Go. I'm sure you can interface with C libraries and such in Go, but that's beside the point.
So i'm convinced. Can I use pointers in Go to point to memory address's. How up to date is the Go-GTK package. How do you suggest I go forth to start learning the language.
@ James: Yeah there are pointers in Go. Different people have different ways of learning a language. When I learn a new language, I see how the things that I know in the languages I know are done in the new language. BTW Go is kinda similar to C so it wouldn't be much trouble learning it (once you get used to its weird syntax that is).
C/C++ with assembly is usually recommended for OS Dev. You'll see that almost all kernels and OS are written in C/C++ + Assembly. But I don't think you'd have a problem writing an OS with Go.