26 Replies - 1627 Views - Last Post: 13 September 2012 - 08:29 AM
#16
Re: Want to learn another language
Posted 11 September 2012 - 09:59 AM
Yes.. like a Bohemian to a hand made, vintage, hemp jewelery table at the local dirt mall.
#17
Re: Want to learn another language
Posted 11 September 2012 - 03:19 PM
For anyone still confused about the C/C++/C# question, my answer:
C is a language initially released in the early 1970s. It's quite low-level by today's standards. It has a very small set of syntax rules. It's used systems and embedded programs, as well as general-purpose development. A good choice if you want to know more about what's actually going on with your program, because it doesn't hold your hand. C is compiled directly into machine language.
C++ is a language initially released in the mid 1980s. It's basically a superset of C. It adds things like Object Oriented features. It's considered higher-level than C is, but still relatively low-level compared to Java, since you still don't have automatic garbage collection and other such things. It's a very general-purpose language, useful for many things. Extremely common. C++ is compiled directly into machine language.
C# (pronounced See Sharp, since a lot of people wouldn't know that from reading it) is a language initially released in 2001, by Microsoft. It is not a set (sub or super) of C. It was named after C because of the similarity of its grammar (braces, whitespace, keywords, etc), not because it has any direct relationship to C or C++. I haven't mentioned an OS for the other two, because they're not OS-specific. C# was (until the Mono project ported much of the .NET Framework; C# is technically not restricted to Windows, but in practice, it is). C# is not compiled directly into machine language, but into CIL, which is then translated to instructions by a Just-In-Time compiler. C# is a fairly general purpose language, useful from things ranging from console applications, services, web services, web sites, and mobile applications. C# is considered a high-level language, with things like automatic garbage collection. You don't deal with manual memory allocation or pointer arithmetic in C#. C# is actually more like Java than any of the other C languages (it's actually like Java if Oracle weren't afraid of a little progress).
Hope that clears up the confusion. I know a lot of people think that C# is somehow related to C++, but it's really not, other than the similar grammar.
C is a language initially released in the early 1970s. It's quite low-level by today's standards. It has a very small set of syntax rules. It's used systems and embedded programs, as well as general-purpose development. A good choice if you want to know more about what's actually going on with your program, because it doesn't hold your hand. C is compiled directly into machine language.
C++ is a language initially released in the mid 1980s. It's basically a superset of C. It adds things like Object Oriented features. It's considered higher-level than C is, but still relatively low-level compared to Java, since you still don't have automatic garbage collection and other such things. It's a very general-purpose language, useful for many things. Extremely common. C++ is compiled directly into machine language.
C# (pronounced See Sharp, since a lot of people wouldn't know that from reading it) is a language initially released in 2001, by Microsoft. It is not a set (sub or super) of C. It was named after C because of the similarity of its grammar (braces, whitespace, keywords, etc), not because it has any direct relationship to C or C++. I haven't mentioned an OS for the other two, because they're not OS-specific. C# was (until the Mono project ported much of the .NET Framework; C# is technically not restricted to Windows, but in practice, it is). C# is not compiled directly into machine language, but into CIL, which is then translated to instructions by a Just-In-Time compiler. C# is a fairly general purpose language, useful from things ranging from console applications, services, web services, web sites, and mobile applications. C# is considered a high-level language, with things like automatic garbage collection. You don't deal with manual memory allocation or pointer arithmetic in C#. C# is actually more like Java than any of the other C languages (it's actually like Java if Oracle weren't afraid of a little progress).
Hope that clears up the confusion. I know a lot of people think that C# is somehow related to C++, but it's really not, other than the similar grammar.
#18
Re: Want to learn another language
Posted 11 September 2012 - 06:43 PM
jon.kiparsky, on 11 September 2012 - 09:09 AM, said:
Avoid everything on this list for a start.
Beyond that, steer towards things, not away from them. There's a huge range of things that you could want to work on. If you want to write operating systems, you don't want javascript. If you want to write websites, C isn't going to help you a lot.
What are three things that you'd like to make?
Beyond that, steer towards things, not away from them. There's a huge range of things that you could want to work on. If you want to write operating systems, you don't want javascript. If you want to write websites, C isn't going to help you a lot.
What are three things that you'd like to make?
Websites and videogames.
Problem solvers(math puzzles especially)
Animation/ Graphics
#19
Re: Want to learn another language
Posted 11 September 2012 - 11:08 PM
Well, that's quite broad. If you're really interested in video games, you need to learn C++. There are games made in other languages (Minecraft is Java, for example, and C# has XNA, which is a wonderful framework for creating games, especially indie games), but the large majority of games are written in mostly C++. If you ever want to work in the games industry, no other language will help you as much as a good working knowledge of C++.
Problem solvers can be written in basically any language you want. Functional languages like Haskell and F# (or Lisp, if you really want to be a purist) will be a good choice, because the paradigm they use favors this, but you have to completely change the way you think about software to really understand functional programming.
Websites...you have lots and lots of options. PHP is the ever-popular choice. I personally won't touch it with a ten-foot pole because of personal preference (and many here would and probably will completely disagree with me), but it's easily the most widely-used and widely-available server side language. C# is a good choice for web applications, with lots of options on how to actually create them. VB.NET offers literally everything C# does, with a VB grammar instead of a C-like one. Java is a popular choice in the enterprise world for web sites (Java EE). Ruby had a huge burst of popularity, but failed to sustain it. Still a valid choice, and a fairly interesting language, and Rails is a good framework for rapidly cranking out sites. Those are the major choices, these days. Oh, there's also Python with Django, but it's not exactly high-demand. Also, learn Javascript. You'll need it if you do web development of almost any kind, along with jQuery. There's also Node.js, for server-side javascript if you discover you love the language.
As for animation and graphics, I have no help for you there, because I have no experience in that field. But I can guarantee you that almost any language you pick will be of some use in that area.
To narrow down your choices with a list of my personal recommendations:
C#, C++, Python (which is a simple and enjoyable language), Ruby or PHP (if C# doesn't do it for you on the web side), and Javascript. Pick one of those and get started.
Problem solvers can be written in basically any language you want. Functional languages like Haskell and F# (or Lisp, if you really want to be a purist) will be a good choice, because the paradigm they use favors this, but you have to completely change the way you think about software to really understand functional programming.
Websites...you have lots and lots of options. PHP is the ever-popular choice. I personally won't touch it with a ten-foot pole because of personal preference (and many here would and probably will completely disagree with me), but it's easily the most widely-used and widely-available server side language. C# is a good choice for web applications, with lots of options on how to actually create them. VB.NET offers literally everything C# does, with a VB grammar instead of a C-like one. Java is a popular choice in the enterprise world for web sites (Java EE). Ruby had a huge burst of popularity, but failed to sustain it. Still a valid choice, and a fairly interesting language, and Rails is a good framework for rapidly cranking out sites. Those are the major choices, these days. Oh, there's also Python with Django, but it's not exactly high-demand. Also, learn Javascript. You'll need it if you do web development of almost any kind, along with jQuery. There's also Node.js, for server-side javascript if you discover you love the language.
As for animation and graphics, I have no help for you there, because I have no experience in that field. But I can guarantee you that almost any language you pick will be of some use in that area.
To narrow down your choices with a list of my personal recommendations:
C#, C++, Python (which is a simple and enjoyable language), Ruby or PHP (if C# doesn't do it for you on the web side), and Javascript. Pick one of those and get started.
#20
Re: Want to learn another language
Posted 12 September 2012 - 07:55 AM
#21
Re: Want to learn another language
Posted 13 September 2012 - 06:51 AM
sepp2k, on 12 September 2012 - 02:55 PM, said:
I would say that it's not, at least not Common Lisp - CL allows mutable state, Haskell does not (unless you know black magic). However, Lisp is probably one of the oldest functional languages, and so some people think of it as the purest, even though it's not. Common Lisp could even be considered multi-paradigm - CLOS implements some sort of OOP in Lisp.
I haven't heard of a "purely" functional Lisp - "purely" meaning "as pure as it gets while still being practical", which is about where Haskell is.
#22
Re: Want to learn another language
Posted 13 September 2012 - 07:05 AM
#23
Re: Want to learn another language
Posted 13 September 2012 - 07:42 AM
#24
Re: Want to learn another language
Posted 13 September 2012 - 08:04 AM
Tayacan, on 13 September 2012 - 09:42 AM, said:
Why yes, there is! However, I don't want a pure functional language. Really.
Nobody does, really. That's why the "X isn't really pure" arguments are so
#25
Re: Want to learn another language
Posted 13 September 2012 - 08:05 AM
Tayacan, on 13 September 2012 - 08:51 AM, said:
sepp2k, on 12 September 2012 - 02:55 PM, said:
I would say that it's not, at least not Common Lisp - CL allows mutable state, Haskell does not (unless you know black magic). However, Lisp is probably one of the oldest functional languages, and so some people think of it as the purest, even though it's not.
Pure was probably the wrong word for me to use. What I meant was that there's a cult of FP out there. A sub-cult of that, if you will, are the people that believe that Lisps are the holy grail of programming and that everything should be made in lisp. I think they have scriptures and prophecies written in S-expressions.
That's what I meant about a "purist". I know there are lots of practical people that use one of the Lisps, but it does seem to be the language with the most devoted cult around it.
#26
#27
Re: Want to learn another language
Posted 13 September 2012 - 08:29 AM
|
|

New Topic/Question
Reply






MultiQuote




|