LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   What Is The Next Language To Move Into? (https://www.linuxquestions.org/questions/programming-9/what-is-the-next-language-to-move-into-942339/)

Zssfssz 04-28-2012 07:34 PM

What Is The Next Language To Move Into?
 
I have done almost all of my work in C++, only recently have I tried a high leval language (Lua) and even more recently a high leval, large language (Ruby).
I didn't like Ruby much, probobly because of the poor raw file io (as in raw file io is hard to do not that it only has plain file io).

I need a new language. Many people have pointed me to Java or C# but I know better, Java is an ugly language, and C# has not been fully reimplemnted in open source.
I almost got into the D language but was, again, told it wasnt worth the time. Same with Fortran (which I am good at), Rexx, Miranda, Intercal (only good call in this list), Rebol, and Ada.

I have come up with a list of requirements for the language:
Is a compiled language or can be compiled into bytecode (Lua, Python)
Is ether unusual or not in the C family.
(Optional But Prefered) Support By A Common (Gtk+, Qt, FLTK, Tk) GUI Toolkit
Has masive amounts of File I/O Stuff.
Has windows support, (Non-Cygwin)
Does not force you to program in one way (Java + Object Orented)

Now lets get started!
Any Thoughts?

Garda 04-28-2012 09:53 PM

I'm going to come out with a crazy idea:

Javascript + HTML5 + CSS

Why? Computing is increasingly becoming mobile and whereas platforms may have their own suggested platform on which to develop apps (iOS --> objective C, Android --> Java, Windows 8 metro --> C#, etc. --> etc.) they all also make it possible to develop using these tools. That is to say that whereas it may not be quite possible to write once and run on all, the skills developed using these tools on one platform (I assume) will be largely transferable to the other.

It fulfills many of your requirements, including:
  • Is a compiled language or can be compiled into bytecode (Lua, Python) (I'm not sure about this, but I do believe most javascript engines
  • Is ether unusual or not in the C family. (I'm pretty sure it's quite different to C). (I would also add there is probably a whole bunch of crazy technology surrounding the web, eg. WebGL)
  • (Optional But Prefered) Support By A Common (Gtk+, Qt, FLTK, Tk) GUI Toolkit (I believe "the browser/HTML engine" counts as the common toolkit.
  • Has masive amounts of File I/O Stuff. (I have no idea about this, but I would assume the answer is largely no)
  • Has windows support, (Non-Cygwin) (Probably the widest supported platform there is)
  • Does not force you to program in one way (Java + Object Orented) (it is my understanding that JavaScript is reasonably flexible in this regard)

IMO, real applications are being built using JavaScript. Not to mention that it seems to be the most popular language on GitHub.

Sergei Steshenko 04-29-2012 08:13 AM

Quote:

Originally Posted by Zssfssz (Post 4665682)
I have done almost all of my work in C++, only recently have I tried a high leval language (Lua) and even more recently a high leval, large language (Ruby).
I didn't like Ruby much, probobly because of the poor raw file io (as in raw file io is hard to do not that it only has plain file io).

I need a new language. Many people have pointed me to Java or C# but I know better, Java is an ugly language, and C# has not been fully reimplemnted in open source.
I almost got into the D language but was, again, told it wasnt worth the time. Same with Fortran (which I am good at), Rexx, Miranda, Intercal (only good call in this list), Rebol, and Ada.

I have come up with a list of requirements for the language:
Is a compiled language or can be compiled into bytecode (Lua, Python)
Is ether unusual or not in the C family.
(Optional But Prefered) Support By A Common (Gtk+, Qt, FLTK, Tk) GUI Toolkit
Has masive amounts of File I/O Stuff.
Has windows support, (Non-Cygwin)
Does not force you to program in one way (Java + Object Orented)

Now lets get started!
Any Thoughts?

Try LISP. Exactly because it is an old language which influenced a lot of new languages. For example, read http://c2.com/cgi/wiki?HomoiconicLanguages , http://en.wikipedia.org/wiki/Homoiconicity .

pan64 04-29-2012 08:18 AM

what about perl?

Sergei Steshenko 04-29-2012 08:21 AM

Quote:

Originally Posted by pan64 (Post 4665961)
what about perl?

Perl is still my language of choice, but, looking back, I'm saying that from the point of view of orderly self-education better to start from LISP - from which Perl stole (in a good sense) a lot.

dugan 04-29-2012 11:16 AM

My personal recommendation is Python, which fits all of Zssfssz's requirements. It also has good support for calling C libraries, if you don't like its "batteries included".

Quote:

Originally Posted by Sergei Steshenko (Post 4665959)
Try LISP. Exactly because it is an old language which influenced a lot of new languages. For example, read http://c2.com/cgi/wiki?HomoiconicLanguages , http://en.wikipedia.org/wiki/Homoiconicity .

Good recommendation. Very good recommendation. However, I would suggest starting instead with Scheme and learning from the SICP.

Zssfssz 04-29-2012 12:32 PM

I tried python and like it, and it has good library support. I'll try it, any other suggestions? How about a compiled language?
I want to add another requirement: built In networking.

Sergei Steshenko 04-29-2012 01:48 PM

Quote:

Originally Posted by Zssfssz (Post 4666113)
... built In networking.

I don't think there is such a language. Networking is a part of the language (standard) library.

Under Linux eventually glibc functions will be called to implement networking - regardless of language.

Zssfssz 04-29-2012 04:22 PM

Well by built in networking I mean sockets are avalable via the standard library, lua is an example of a language without built in networking, an external lib needs to be installed first.
C++/C has this in the form of winsock.h and unistd.h(?).

Sergei Steshenko 04-29-2012 04:25 PM

Quote:

Originally Posted by Zssfssz (Post 4666227)
.. an external lib needs to be installed first. ...

So what ?

uselpa 04-30-2012 10:33 AM

+1 for Scheme. A real eye-opener. I recommend Racket to start with.

sundialsvcs 04-30-2012 09:29 PM

I have to admit it ... I'm a programming language junkie. :) One of the most interesting and useful things that I know to do is to find some new programming language that I've never encountered, and, well, to "encounter" it. On any Unix/Linux system, there are an endless supply of language tools at your beck and call.

For example, I once was faced with a multi-stage Geocaching puzzle which contained, first, the devil's own logic-puzzle having twenty one different conditions. ("The prince with the white coat did not have okra for breakfast.") This was followed by an absurd Sudoku puzzle. But a language that I happened to have "encountered," called Prolog, allowed me to solve both problems ... and I think that I enjoyed figuring out how to make Prolog do it, as I did finding the cache. More recently, I've been exploring a powerful statistical language called, simply, "R."

Programming languages are cleverly-designed tools for solving a particular class of problems in a particular way. They are tools designed to make something that is difficult become easier. And there is no way to "characterize" them. If you make a pursuit of "studying languages," you not only learn about the languages, but you learn from the process of examination.

Sergei Steshenko 05-01-2012 03:46 AM

Quote:

Originally Posted by sundialsvcs (Post 4667190)
I have to admit it ... I'm a programming language junkie. :) One of the most interesting and useful things that I know to do is to find some new programming language that I've never encountered, and, well, to "encounter" it. On any Unix/Linux system, there are an endless supply of language tools at your beck and call.

For example, I once was faced with a multi-stage Geocaching puzzle which contained, first, the devil's own logic-puzzle having twenty one different conditions. ("The prince with the white coat did not have okra for breakfast.") This was followed by an absurd Sudoku puzzle. But a language that I happened to have "encountered," called Prolog, allowed me to solve both problems ... and I think that I enjoyed figuring out how to make Prolog do it, as I did finding the cache. More recently, I've been exploring a powerful statistical language called, simply, "R."

Programming languages are cleverly-designed tools for solving a particular class of problems in a particular way. They are tools designed to make something that is difficult become easier. And there is no way to "characterize" them. If you make a pursuit of "studying languages," you not only learn about the languages, but you learn from the process of examination.

Prolog is quite an interesting language. I once attended classes on it.

But I think that more recent languages like Haskell and OCaml with their libraries allow to do what Prolog does.

makyo 05-09-2012 07:13 AM

Hi.

Icon:
http://www.cs.arizona.edu/icon/
http://en.wikipedia.org/wiki/Icon_(programming_language)

tcl:
http://tcl.sourceforge.net/
http://en.wikipedia.org/wiki/Tcl

Best wishes ... cheers, makyo

Sergei Steshenko 05-09-2012 02:24 PM

Quote:

Originally Posted by makyo (Post 4674189)

From the Wiki article I am not impressed with Icon - is it any better than Perl ? If yes, in what ?

And TCL, though widely used, is not a pleasant language - I had close encounters with it.


All times are GMT -5. The time now is 07:50 AM.