Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: Bitcoin Swami on July 10, 2011, 02:38:34 AM



Title: What programming language to learn?
Post by: Bitcoin Swami on July 10, 2011, 02:38:34 AM
Its been a while since I programmed (basic) <-- dont laugh.. gorilla was an awesome game!

anyways I'd like to learn to make scripts or programs that can help bitcoin, I'm just wondering if I had to learn one which would be the best.  Should I learn C or should I learn php for web stuff.   Kinda leaning toward php.  But just wondering what others think.  When i go to learn something I go balls to the wall.

What is the bitcoin client programmed in?

Anyways thanks.


Title: Re: What programming language to learn?
Post by: josell on July 10, 2011, 02:57:53 AM
Python in the best for start programming. However, C++ ir good as well, but a little difficult.


Title: Re: What programming language to learn?
Post by: wolftaur on July 10, 2011, 03:00:21 AM
I'm partial to Ruby, myself. And it's a pretty good first language, in my opinion. (Kinda wish it was available 28 years ago when I started coding!)


Title: Re: What programming language to learn?
Post by: kr105 on July 10, 2011, 03:06:18 AM
- Learn C, then you're almost ready to learn PHP and others.
- The bitcoin client is written in C++
- Many users here write their scripts in Phyton, i personally don't like it, but i think that i'll need to learn it sooner or later.


Title: Re: What programming language to learn?
Post by: skottiejay on July 10, 2011, 03:07:13 AM
I second the Python/Ruby route myself, I'm not an experienced programmer and only dabble in a few languages (can't keep my attention span long enough) but these would probably be great languages to learn.

I see a lot of people in other places offer up the advice to just jump straight into a lower level language like c, c++, etc and I don't think that's a good idea. Personally I understand a lot more ABOUT those languages now that I've already programmed in a python/ruby/etc than if I'd just jumped ship and started with asm/c/c++


Title: Re: What programming language to learn?
Post by: Chick on July 10, 2011, 03:15:53 AM
herp derp php.


Title: Re: What programming language to learn?
Post by: ampkZjWDQcqT on July 10, 2011, 03:28:33 AM
You shouldn't go with your mind set to "learn a programming language". A "programming language" is only an expression of the underlying art, The art of computer programming, there even is a multi-volume book bearing that title. Programmers ought to dedicate their career to master this art. I recommend Structure and Interpretation of Computer Programs (http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-2.html). TAOCP is a legend, it's very lengthy but if you have enough time you can't afford to not to read it.

Lisp is a family of programming languages which bear the essence of programming than have been lost in modern computer languages made for the computer pawns, the bottom 99 percentile which dare to call themselves a "programmer". Scheme (http://schemers.org/) is probably the most elegant computer language, it is used in the SICP (The book linked above). Learning the proper use of Lisp is a unique enriching experience for the artist programmer, even if you are working with other computer languages. C does exactly what it's supposed to do and does it well. Unfortunately you will probably have to learn to find your way in C++ (http://www.urbandictionary.com/define.php?term=bullshit) if you plan to work on the Bitcoin reference implementation.

Quote
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.

In advance, the reply to this is your biased point of view accusation is Of course!. Pretending human recommendations or opinions aren't biased is naive. However, people honest with themselves and their fellows will try to make their opinions biased toward what's perceived by the former as good, right or better and I'm no exception.

Regards.


Title: Re: What programming language to learn?
Post by: Bitcoin Swami on July 10, 2011, 03:31:33 AM
Thanks guys great replies.  I will be researching more.


Title: Re: What programming language to learn?
Post by: MeSarah on July 10, 2011, 03:45:44 AM
I would suggest php and sql. Php was easy to learn but I also have a background in c++ and vb, .net. If you learn php you can find alot of tutorials on youtube. With xampp you be programming in no time. The hardest thing to learn is the sql. I would suggest getting a book on mysql if you want to harness the power of sql. Also a good ide will help you learn faster. You can start with notpad++ but a better start is Phpdesigner 7.x. Phpdesigner is about the cost of a book and its a wonderful teacher. It will point out mistakes where notepad++ only does syntax highlighting. Once you have the base structures learned you can transer those to other languages. But the real question is what is it that you want to achieve?


Title: Re: What programming language to learn?
Post by: skottiejay on July 10, 2011, 04:06:28 AM
You shouldn't go with your mind set to "learn a programming language". A "programming language" is only an expression of the underlying art, The art of computer programming, there even is a multi-volume book bearing that title. Programmers ought to dedicate their career to master this art. I recommend Structure and Interpretation of Computer Programs (http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-2.html). TAOCP is a legend, it's very lengthy but if you have enough time you can't afford to not to read it.


+1 on the SICP, it's a definite must read.


Title: Re: What programming language to learn?
Post by: hugolp on July 10, 2011, 04:51:32 AM
You should choose either go to C or go to python (or ruby, but I personally preffer python). C will give you a more clear understanding about programming and will make it easier to learn any other programming language in the future, but its harder to learn. Python is easier to learn and will allow you to achieve results way faster.


Title: Re: What programming language to learn?
Post by: adamstgBit on July 10, 2011, 04:57:36 AM
would help to have a site the dose wat bitcoin.local dose but much better.Bigger

so i ya go with quick and dirty php :P
and make the site!

or the best soution

a C# windows program called bitcoinlocal.exe


Title: Re: What programming language to learn?
Post by: EconomicOracle on July 10, 2011, 06:00:18 AM
PHP can do ANYTHING!


Title: Re: What programming language to learn?
Post by: Swishercutter on July 10, 2011, 06:16:14 AM
Its been a while since I programmed (basic) <-- dont laugh.. gorilla was an awesome game!




I'm with you...all I really know is Basic and 8088 assembly (electronics class...8088 primer trainer, hex button input and 7 segment LED display...lol).  I have been learning "Processing" because I have been doing a bunch of Arduino/Reprap stuff and that is the language they use (I guess its pretty much C+ or something).

I would love to learn Python and PHP myself...just takes reading and playing around...the thing I love about coding is that you don't need to buy a lot of parts to do it (i.e. electronics requires buying parts for every project) just have a capable computer and create.


Title: Re: What programming language to learn?
Post by: mouse on July 10, 2011, 08:06:11 AM
*edit* This is for those who are considering getting into programming. I'm not so much looking at just 'what is best to help with bitcoin'.

There are 3 main programming paradigm's that I’m aware of: procedural, object orientated, and functional. I'm going to suggest you start with Object Orientated. For that, I'm going to nominate Java or Python.

If you take up Java, you can help with the bitcoinj project. You can also work on Android clients.

I don't think that for learning programming, C or C++ are your best choices. I think you want a language that introduces to the most Object Orientated concepts with the least amount of technical baggage. From that perspective, C and C++ would be ruled out. I really can't see the point in learning about garbage collection as an initial introduction to programming.

If you ever want to get serious about functional (a lot of languages like to 'borrow' elements from this paradigm) have a look at Haskell.

For python or Java free learning resources:
http://diveintopython.org/
www.mindview.net/Books/TIJ/ (Bruce Eckels Thinking In Java)
www.mindview.net/Books/TIPython (Bruce Eckels Thinking In Python)



Title: Re: What programming language to learn?
Post by: ShaggyB (BitCoinWorldMarket) on July 10, 2011, 09:26:02 AM
You shouldn't go with your mind set to "learn a programming language". A "programming language" is only an expression of the underlying art, The art of computer programming, there even is a multi-volume book bearing that title. Programmers ought to dedicate their career to master this art. I recommend Structure and Interpretation of Computer Programs (http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-2.html). TAOCP is a legend, it's very lengthy but if you have enough time you can't afford to not to read it.

Lisp is a family of programming languages which bear the essence of programming than have been lost in modern computer languages made for the computer pawns, the bottom 99 percentile which dare to call themselves a "programmer". Scheme (http://schemers.org/) is probably the most elegant computer language, it is used in the SICP (The book linked above). Learning the proper use of Lisp is a unique enriching experience for the artist programmer, even if you are working with other computer languages. C does exactly what it's supposed to do and does it well. Unfortunately you will probably have to learn to find your way in C++ (http://www.urbandictionary.com/define.php?term=bullshit) if you plan to work on the Bitcoin reference implementation.

Quote
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.

In advance, the reply to this is your biased point of view accusation is Of course!. Pretending human recommendations or opinions aren't biased is naive. However, people honest with themselves and their fellows will try to make their opinions biased toward what's perceived by the former as good, right or better and I'm no exception.

Regards.



While there are a ton of languages out there, and I agree that a good solid programmer doesn't learn a language they learn how to program, every solid engineer gets their start in one language.

Myself, I lean towards C# and .NET, but I've messed around with PHP and Ruby. For web stuff, you might find PHP to be the most free. Its pretty powerful and quick. Some even say it can do anything, im still waiting for it to make me coffee in the morning but hey.

Find a language that you can get behind, learn the basics and then if you feel like moving on, explore a completely different language. PROLOG will blow you mind!


Title: Re: What programming language to learn?
Post by: flug on July 10, 2011, 09:36:33 AM
For a really nice language that's interoperable with Java on the JVM, have a look at Scala.

Here's a blog post by Bruce Eckel about it:

http://www.artima.com/weblogs/viewpost.jsp?thread=328540


Title: Re: What programming language to learn?
Post by: Stardust on July 10, 2011, 09:39:20 AM
Bash, Python, and C/C++. If I were you I would stay away from Java.


Title: Re: What programming language to learn?
Post by: angelo95 on July 10, 2011, 10:14:51 AM
If you want to do web development, go for php
If you want something more general, go for python.

This advise is related to the experience you described.


Title: Re: What programming language to learn?
Post by: giantdragon on July 10, 2011, 11:26:01 AM
C++ with Qt Framework.


Title: Re: What programming language to learn?
Post by: Djao on July 10, 2011, 11:32:08 AM
http://asset.soup.io/asset/0750/2820_15d5_960.jpeg

edit: changed pic to include Lisp


Title: Re: What programming language to learn?
Post by: pB11 on July 10, 2011, 11:54:10 AM
Its been a while since I programmed (basic) <-- dont laugh.. gorilla was an awesome game!

anyways I'd like to learn to make scripts or programs that can help bitcoin, I'm just wondering if I had to learn one which would be the best.  Should I learn C or should I learn php for web stuff.   Kinda leaning toward php.  But just wondering what others think.  When i go to learn something I go balls to the wall.

What is the bitcoin client programmed in?
Bitcoin client written in C++.

Basic C knowledge is always needed, whatever main language you about to choose.

A good starting point is this site:
http://projecteuler.net/index.php?section=problems (http://projecteuler.net/index.php?section=problems)
People solve problems using various languages and techniques.
You have to find a solution to access the discussion.

According to my observations of projecteuler (sorted by popularity):
- C++ wins, but by a small margin
- Python is more and more popular, native big integers is a big advantage (not in real world just in this particular problems), some implementations can compete with C++ speed (psyco etc.)
- Java is used quite often
- Ruby represents very nice and compact source code, but lack of speed make it worthless for final fast solution sometimes (300x slower than C is quite possible), but very useful in research/testing
- Haskell is the most popular functional language atm, there are some solution on Clojure,APL/J/K,LISP
- C#, Delphi is still used

Perl is the best for text/binary parsing, and my choice for very small programs.


Title: Re: What programming language to learn?
Post by: Sandoz on July 10, 2011, 11:58:05 AM
I would learn a language supporting the object oriented concepts. Java is a great starting place, C++ is also.

After that you can learn procedural languages (e.g. C, Perl etc) in no time.


Title: Re: What programming language to learn?
Post by: SmokeAndMirrors on July 10, 2011, 12:13:07 PM
Bash, Python, and C/C++. If I were you I would stay away from Java.

Why do you say this? If you're not looking to make any huge million dollar project, java is a great language to get your feet wet.

I started out with C++ and while it did take quite some time to learn how to make my own fully functional programs without having to look at references every 5 minutes, I still recommend it as a start. I recommend any and all languages. They've all got their ups and downs. However, if you do plan on becoming a full-fledged programmer in the future, I would hope that you learn C++ eventually as it is one of the most powerful languages out there and while PHP claims to be able to do anything, C++ really can.


Title: Re: What programming language to learn?
Post by: bcearl on July 10, 2011, 12:15:40 PM
C++ with Qt Framework.

Puke.

C with Glib/GObject system.


Title: Re: What programming language to learn?
Post by: bcearl on July 10, 2011, 12:20:27 PM
If you care whether your language is widely in use:

Programming Community Index

Code:
1 	1 		Java 	19.251% 	+0.58% 	  A
2 2 C 17.280% -1.20%  A
3 3 C++ 9.017% -1.45%  A
4 5 C# 6.221% +0.49%  A
5 4 PHP 6.179% -2.39%  A
6 9 Objective-C 5.181% +2.68%  A
7 6 (Visual) Basic 5.106% -0.41%  A
8 7 Python 3.583% -0.63%  A
9 8 Perl 2.328% -0.77%  A
10 10 JavaScript 2.242% -0.19%  A
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html




http://www.tiobe.com/content/paperinfo/tpci/images/tpci_trends.png


But once you really learned to program, you don't need to lean specific languages any more. I never learned C++, but it's easy to understand Bitcoin with some knowledge of C and Java.


Title: Re: What programming language to learn?
Post by: timsmith on July 10, 2011, 12:31:38 PM
It all depends what you are trying to do. Saying "I want to learn programming, which should I go with?" is rather like saying "I want to do art, which should I go with?". If your goal is to get signed by a record label, learning sculpture is not going to get you very far, even if you are a master at it.

As has been said, the actually language itself is less important than what you learn from it. There are simple concepts that are common to all programming languages, like variables, and ones like iteration, recursion and scope which similarly crop up again and again.

You say you did BASIC? So you probably recognise:
FOR n$ = 1 TO 10
PRINT n$;
NEXT

In PHP it is:
for ($n = 1; $n <= 10; $n++) echo $n . "\r\n";

In Java it is:
for (int n = 1; n <= 10; n++) System.out.println(n);

The point is that it's not the syntax (the words and the grammer) so much as the semantics (what you mean by it) that matters.

But beyond that, it also depends what you are trying to achieve at a higher level. If you are wanting to build a database driven webserver, then you'll find the PHP and SQL are useful, or ASP.NET, or any of the other web languages. Learning Fortran will not greatly help your goal of web work.

If on the other hand, you are wanting to write simple CLI scripts to speed up your work, then things like Bash and SED or Perl are useful (assuming Linux) or even VBScript on Windows.

For embedded systems, C and raw assembler will be far more useful.

So before you can get a good answer, you need to think a little more about exactly what you want to achieve. I know you mentioned scripting, but you need to decide what you want to script, and more importantly, WHY it is beneficial for it to be scripted.


Title: Re: What programming language to learn?
Post by: bitfreak! on July 10, 2011, 12:36:49 PM
- Learn C, then you're almost ready to learn PHP and others.
I highly doubt PHP is more complicated than C. PHP is a web language, and it's actually not very hard to learn.

@OP,
It really depends on what you want to make and how intelligent you are. If you want to make web applications I recommend that you stick with popular open languages like PHP, JavaScript, MySQL, and of course (X)HTML.

If you want to develop desktop applications than you're best bet is to probably learn one of the C languages and/or Java. If you want to stick with easy languages try Delphi or VB instead. Or if you want a basic scripting language try PascalScript or VBscript.

What languages do I know? All the ones I listed except C languages. 8)


Title: Re: What programming language to learn?
Post by: w1R903 on July 10, 2011, 01:00:17 PM
Python is an excellent all-around language.  You can really do almost anything with it: very serious web design (Django, Plone -- extremely well-regarded frameworks/CMS), easy scripting (including a very cool runtime interpreter that can give immediate feedback), GUI design, Windows desktop executables.  If you need higher performance, you can use Python bindings to fast C/C++ libraries, but still use Python to tie it all together.  You can even use Python to do GPU programming (the last two are things I've done yet done with Python personally, but others do them all the time).  So you can basically take advantage of a lot that C/C++ has to offer without having to learn the languages themselves.

Python also has great documentation and friendly support boards.  You can find an excellent intro to computer programming that uses Python here:  http://greenteapress.com/thinkpython/  This is a guide that will teach you the basics of "computer programming" as a science/art and not just another language.

Google also offers some good Python tutorials.

I only wish I had invested all the time I did learning and using PHP on Python instead.  Unfortunately, when I started with PHP back in the 1990s, only really serious programming geeks new about Python, and its use had not yet been expanded to web programming to a significant extent.

Also, that (very funny) picture someone put up of different programming perceptions of other languages is totally true.  The language(s) you learn will have a big impact on how you are perceived by other programmers.  And even the most serious programmers usually take Python seriously, even if they don't use it themselves.  This is not the case with PHP.

PS -- If you do serious web programming, you'll also need to learn about databases.  Do yourself a favor and learn about basic database normalization.  Some many web apps end up totally screwed up because they ignore the principles of database normalization (and yes, I know that too much normalization can cause performance issues).  If you really understand object-oriented programming, normalization will make a lot of sense and will make your web app a much sounder application.


Title: Re: What programming language to learn?
Post by: enquirer on July 10, 2011, 01:23:52 PM
language itself is only 1% of the story

you can learn PHP in one day but then you should also learn this http://php.net/quickref.php (http://php.net/quickref.php)

90% of programmer's job is "google->copy->paste", so choose the language with largest amount of available code)

right now it's Java and C#

C and C++ look terribly outdated, if you code with them why not go directly for VHDL its even more efficient)


Title: Re: What programming language to learn?
Post by: Steve on July 10, 2011, 01:25:27 PM
A good understanding of C/C++ is pretty fundamental for everyone (and in particular calling conventions and how various OSes approach linking).  A general understanding of processor instruction sets and how you go from a high level language to machine code helps as well.

Here's one language no one has mentioned (or maybe I missed it): JavaScript...every major web browser runs it, it has many advanced features (i.e. closures), and it has a server side implementation (nodejs.org).  Google's v8 team is very talented and making JavaScript very fast (I've read that is it 10x faster than PHP right now and 3x faster than Python and likely to continue getting much faster).  


Title: Re: What programming language to learn?
Post by: julz on July 10, 2011, 01:36:27 PM
Here's one language no one has mentioned (or maybe I missed it): JavaScript...every major web browser runs it, it has many advanced features (i.e. closures), and it has a server side implementation (nodejs.org).  Google's v8 team is very talented and making JavaScript very fast (I've read that is it 10x faster than PHP right now and 3x faster than Python and likely to continue getting much faster).  

+1 to javascript.
It's a language that has been underappreciated, miscategorized and misunderstood for many years.. but is finally getting the recognition it deserves.  If any language is going to take off 'bitcoin style' .. it'll be javascript.
Serverside JS is an awesome development that has only just begun.


Title: Re: What programming language to learn?
Post by: Ekaros on July 10, 2011, 01:41:49 PM
I wouldn't personaly suggest C as first, too much work unrelated to programming itself. In my opinion more high level language is somewhat easier to start with, just for geting in loops, if/else and such. No need to deal with C's strings, pointers and memory managment and so on.

Now when I'm learning Python, it seems so simple compared to C ;D

Personaly I went Java->C(/MIPS)->Python, next I think C++, but this is all in University.


Title: Re: What programming language to learn?
Post by: MatthewLM on July 10, 2011, 01:45:56 PM
What do you want to do for bitcoin? If you want to understand the client, you'd need to understand C++.


Title: Re: What programming language to learn?
Post by: kjj on July 10, 2011, 03:35:40 PM
I recommend Structure and Interpretation of Computer Programs (http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-2.html).

I suggest watching the lecture videos (http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/) too.


Title: Re: What programming language to learn?
Post by: ampkZjWDQcqT on July 10, 2011, 03:50:37 PM
[...] Google's v8 team is very talented and making JavaScript very fast (I've read that is it 10x faster than PHP right now and 3x faster than Python and likely to continue getting much faster).  

No. Languages don't have speed, implementations do. Comparing implementations evaluation time (Speed) only makes sense for a given test case(s), which are missing from your claims.

I don't understand. Java, Ruby @ seen by Lisp fans, duh?.


Title: Re: What programming language to learn?
Post by: JohnDoe on July 10, 2011, 03:55:36 PM
+1 to Javascript. If you are going for web development that's the way to go as you can use it for both front end (jQuery) and back end (Node.js).


Title: Re: What programming language to learn?
Post by: bernd on July 10, 2011, 04:02:32 PM
You shouldn't go with your mind set to "learn a programming language". A "programming language" is only an expression of the underlying art, The art of computer programming, there even is a multi-volume book bearing that title. Programmers ought to dedicate their career to master this art. I recommend Structure and Interpretation of Computer Programs (http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-2.html). TAOCP is a legend, it's very lengthy but if you have enough time you can't afford to not to read it.

This. Even though i am no master or anything like that, i loved the Lectures.


Title: Re: What programming language to learn?
Post by: hugolp on July 10, 2011, 04:47:11 PM
C++ with Qt Framework.

Puke.

C with Glib/GObject system.

And Vala!


Title: Re: What programming language to learn?
Post by: qbg on July 10, 2011, 05:11:25 PM
Its been a while since I programmed (basic) <-- dont laugh.. gorilla was an awesome game!

anyways I'd like to learn to make scripts or programs that can help bitcoin, I'm just wondering if I had to learn one which would be the best.  Should I learn C or should I learn php for web stuff.   Kinda leaning toward php.  But just wondering what others think.  When i go to learn something I go balls to the wall.

What is the bitcoin client programmed in?

Anyways thanks.
Avoid PHP; it is a poorly designed language.

For general programming, I'd recommend you a member of the Lisp family with a focus on functional programming such as Scheme, Racket, or Clojure. Clojure runs on the JVM and is a very practical language, but can currently be rough in a few spots.

For web programming:
* Javascript - You need it for client side scripting (you can also use it server side with Node.js). A lisp background will help with good Javascript code.
* Ruby - A clean language (with lisp influences), and it has Ruby on Rails.
* Java - The JVM is good for server-side programming, and has a ton of libraries available. Spring MVC makes web programming bearable, but it is still rather heavy.

90% of programmer's job is "google->copy->paste", so choose the language with largest amount of available code)
Wrong. Cargo-cult programming is a very bad practice.
Quote
C and C++ look terribly outdated, if you code with them why not go directly for VHDL its even more efficient)
C and C++ are general purpose programming languages (and are good languages for some domains). VHDL is for hardware.


Title: Re: What programming language to learn?
Post by: Jointops420 on July 11, 2011, 12:08:22 AM
This has been a very helpful thread, cheers. I have been into computers for nearly 20yrs, I got formally edumacted at TAFE with networks 10years ago, learned more of my fellow students than the slow feed from the teachers. I had a choice at the time to go with networking or do coding now I wish in hind site I choose coding. Theres just so much skope for bitcoin with the much needed applications for commerce or solo workers that will need new/newer programs for a long time yet.
This has been so helpful to hear everyones preferences, I choose Python to learn after a bit of extra reading.


Title: Re: What programming language to learn?
Post by: vectorvictor on July 11, 2011, 07:22:00 AM

There are 3 main programming paradigm's that I’m aware of: procedural, object orientated, and functional. I'm going to suggest you start with Object Orientated. For that, I'm going to nominate Java or Python.



Does not quite follow.  Python supports all three paradigms (although the functional aspect has been somewhat nerfed in recent versions).


Python is easy to learn, very clean (even pretty), has incredible libraries ("batteries included"), and is supported by an awesome community.  It plays well with others (e.g. you can use inline C for huge speed boosts in critical sections).  It is a terrific scripting language and glue language, and doesn't look like line noise (yes, I'm looking at you, Perl).

I've written programs in at least 22 languages.  When I have a choice, I now choose Python for quick coding, C / C++ for heavy lifting (i.e. computationally intensive stuff).  Scheme (a very clean dialect of Lisp) is beautiful and powerful, and I would use it more often if I had my druthers (plus, thinking in Scheme makes you smarter).

Web programming is a mess.  If you really need to do it, maybe try Javascript and HTML5, and just skip all the mistakes of the last 20 years.

Obviously, I have a strong bias toward "clean" (the concept, not the language:).



Title: Re: What programming language to learn?
Post by: befuddled on July 11, 2011, 07:55:13 AM
C++. Accept no substitutes.


Title: Re: What programming language to learn?
Post by: aeroSpike on July 11, 2011, 08:06:16 AM
PHP can do ANYTHING!

Yeah right. Write a driver in PHP, or an Operating System.
And even for what PHP is designed to do there are much better solutions.


Title: Re: What programming language to learn?
Post by: ElectricMonk on July 11, 2011, 08:52:54 AM
+1 Ruby

^^^ That stuff is pure ^^^

Why don't you go build something interesting for Bitcoin in SproutCore

It's a mantra of the Pragmatic Programmer that you should learn a new language every year. Never found the time myself.


Title: Re: What programming language to learn?
Post by: bitplane on July 11, 2011, 09:01:37 AM
I'll also say Python, firstly because it's my favourite language, secondly because OP says he/she was a BASIC programmer and Python reads like BASIC but introduces more complex programming structures.

I wouldn't recommend Lisp unless you want to become a computer scientist or to write programs in Emacs. Most people learn to program so they can achieve things, not for the art of programming itself. Python is a language that gets stuff done in very few lines of code, which is what most people want/need.


Title: Re: What programming language to learn?
Post by: chickenado on July 11, 2011, 09:02:27 AM
For a beginner I would recommend Ruby because it's human-centered, while most other languages are machine-centered.



Title: Re: What programming language to learn?
Post by: phungus on July 11, 2011, 11:32:18 AM

I learned Perl in the early 90's and never felt the need to learn anything else, but I'm a sysadmin.

It has the Catalyst framework for MVC web apps, and it has POE for an event driven framework.

There's lots of sample code and tons of good books. Lots of tutorials.

Perl code can look messy if the person writing it is a mess. This is the same for any language.


It's not the best or the fastest but it works for pretty much any situation just because it's been around for so long and is on pretty much every 'nix box and can be put on Windows easily too. CPAN modules are easy to download and install.

Also, pretty much every web host in the world supports Perl.


It also support object oriented programming semantics, of course.




Title: Re: What programming language to learn?
Post by: relative on July 11, 2011, 11:38:59 AM
master C++.
you can learn almost any other language within an hour after you've done that. (except maybe functional languages like Haskell)


Title: Re: What programming language to learn?
Post by: Rassah on July 11, 2011, 02:27:03 PM
Var'aq. Learn Var'aq. http://freshmeat.net/projects/varaq/ (http://freshmeat.net/projects/varaq/) Then you can program Bitcoin in Klingon, making it an intergalactic currency, not just an international one :D


Title: Re: What programming language to learn?
Post by: dserrano5 on July 11, 2011, 05:31:06 PM
I'd go for Perl. 90% of what you want to do has already been done and is available from CPAN.


Title: Re: What programming language to learn?
Post by: mouse on July 11, 2011, 05:49:02 PM
I'd go for Perl. 90% of what you want to do has already been done and is available from CPAN.

Quotes collected by Bruce Eckel:

Python is executable pseudocode. Perl is executable line noise.

Perl is like vice grips. You can do anything with it, and it's the wrong tool for every job.

Perl is worse than Python because people wanted it worse. Larry Wall (Creator of Perl), 14 Oct 1998

I would actively encourage my competition to use Perl. Sean True, 30 Mar 1999


Title: Re: What programming language to learn?
Post by: dserrano5 on July 11, 2011, 06:24:10 PM
Quotes collected by Bruce Eckel:

Any (preferably recent) opinion from yours? Obviously you haven't seen much Perl code.

In any case, I'm not following this argument. Just gave my opinion and that's all.


Title: Re: What programming language to learn?
Post by: Djao on July 11, 2011, 06:32:24 PM
http://imgs.xkcd.com/comics/lisp.jpg


Title: Re: What programming language to learn?
Post by: ampkZjWDQcqT on July 11, 2011, 07:37:33 PM
I wouldn't recommend Lisp unless you want to become a computer scientist or to write programs in Emacs. Most people learn to program so they can achieve things, not for the art of programming itself. Python is a language that gets stuff done in very few lines of code, which is what most people want/need.

That's an horrible advice. >:(!. Software quality is decaying because now days the average programmer don't cares enough to properly learn the underlying theory required to make quality software. Instead they just want to "achieve things" or "get things done", as if to acquire knowledge wasn't an achievement in itself. Ignorance of the principles of your work is not an option. Please don't incentive new programmers to continue polluting the software collection with crap.


Title: Re: What programming language to learn?
Post by: Rassah on July 11, 2011, 08:07:39 PM
I wouldn't recommend Lisp unless you want to become a computer scientist or to write programs in Emacs. Most people learn to program so they can achieve things, not for the art of programming itself. Python is a language that gets stuff done in very few lines of code, which is what most people want/need.

That's an horrible advice. >:(!. Software quality is decaying because now days the average programmer don't cares enough to properly learn the underlying theory required to make quality software. Instead they just want to "achieve things" or "get things done", as if to acquire knowledge wasn't an achievement in itself. Ignorance of the principles of your work is not an option. Please don't incentive new programmers to continue polluting the software collection with crap.


Lucky for you, the main pushers of "Get things done" are companies that need to get the software coding done as quickly as possible for as little money as possible. That means that the "get things done" development is pretty much limited to pay-for software. Your freeware/GNU stuff is still safe :)


Title: Re: What programming language to learn?
Post by: 99Percent on July 11, 2011, 08:14:37 PM
Has anyone mentioned Free Pascal? It has an IDE and it can virtually do anything and natively with practically any CPU or O/S. For GUI applications you can use Lazarus IDE and practically most widget sets. Its fully open sourced.

It has a rich ancestry with Delphi and Turbo Pascal, with tons of open source libraries.

Easy to learn, readable code, object oriented, and simply rock solid fast compiled native executables like C, or C++.

I am thinking of making a bitcoin client port to Lazarus, if only I had some time...


Title: Re: What programming language to learn?
Post by: SmokeAndMirrors on July 11, 2011, 08:28:36 PM
You can clearly get an idea from this thread that the language is entirely up to you.. Not everyone will agree that there is a "best" language, ever.

Pick one and have fun with it. If you get bored or don't like the language, on to the next one.


Title: Re: What programming language to learn?
Post by: Vladimir on July 11, 2011, 08:35:55 PM
and my favourite is erlang , though in the end it all boils down to 3 logical operations, so, who cares...


Title: Re: What programming language to learn?
Post by: ampkZjWDQcqT on July 11, 2011, 09:36:39 PM
[...]

Lucky for you, the main pushers of "Get things done" are companies that need to get the software coding done as quickly as possible for as little money as possible. That means that the "get things done" development is pretty much limited to pay-for software. Your freeware/GNU stuff is still safe :)

The GNU project is about free software (http://www.gnu.org/philosophy/philosophy.html), free as in freedom, not freeware (http://www.gnu.org/philosophy/categories.html#freeware). Big companies have been involved in the development of free software including parts of the GNU operating system like the GNU compiler collection. Does it exist a company interested in spending as much money as possible?. There exist crappy free software. Software ought to be free (http://www.gnu.org/philosophy/why-free.html), both wonderful and crappy. Also, the problem with free crap isn't nearly the same as with proprietary crap.

If you don't know what you're talking about it's better to get informed first, that way you can make more beneficial comments. I this case, a quick check of the site of the project you was to comment about would have sufficed.


Title: Re: What programming language to learn?
Post by: Bitcoin Harbor on July 11, 2011, 10:41:39 PM
If you want to work on the details of Bitcoin itself, of course, learn C. If you want to build anything that needs to be as efficient and secure as humanly possible, there's just no other choice.

Given OP's needs, however, I say definitely Python. I know many of you are old hands at doing web work with PHP and think it's the only way to go. I strongly suggest you check out Django. It's extremely powerful, and anyone with a working knowledge of Python can pick it up and get running, and the sky is the limit in terms of the complexity of what you can build. Needless to say, Bitcoin Harbor is Django-based, and it's making our lives quite easy for the new features we're rolling out.

OP was also interested in writing smaller scripts, which Python is great for. It's not "just" a scripting language, and you can write very "real" code with it once you know what you're doing, but it can certainly be used for scripting and has a fairly gentle, but deep, learning curve.

Nor do I believe that learning Python and learning "core programming concepts" are necessarily inconsistent at all. I studied CS in college, I'm fluent in C/C++, I remember some Java, I've worked in assembly. While low-level skills are good to have, you CAN still apply them in a high level language - in fact, you'll never be truly fluent in a language like Python until you understand what it's doing underneath the hood.

It's also my opinion that high-level languages teach you ways of thinking that can make you incredibly productive, i.e. functional programming. Specifically I think Python is gateway drug to Haskell, and Haskell is the best rush a coder can get - though it's arguable at best whether you can use it for web work.

      -Tristan


Title: Re: What programming language to learn?
Post by: timsmith on July 11, 2011, 10:44:13 PM
Has anyone mentioned Free Pascal? It has an IDE and it can virtually do anything and natively with practically any CPU or O/S. For GUI applications you can use Lazarus IDE and practically most widget sets. Its fully open sourced.

It has a rich ancestry with Delphi and Turbo Pascal, with tons of open source libraries.

Easy to learn, readable code, object oriented, and simply rock solid fast compiled native executables like C, or C++.

I am thinking of making a bitcoin client port to Lazarus, if only I had some time...
There's a lot to be said for the Pascal based languages. They teach you good practices and principles. You can achieve 99% of the speed and efficiency of compiled C without the high chance of things like memory leaks.

The only problem is that no one really uses Pascal out in the real world, as C-syntax won the battle for popularity. And unfortunately, the Pascal high-level syntax can be confusing when shifting between languages (all future variables having to be declared at the start of functions etc.)

I'd definitely recommend Pascal/Delphi as a language to learn if you want to learn about programming. But don't expect to be contributing to projects any time soon. It's a shame, as it's a good language really.


Title: Re: What programming language to learn?
Post by: k on July 11, 2011, 10:55:25 PM
i'm similar to the OP and bitcoin has rekindled an interest in learning some coding.
I decided to try to learn python because I saw some of the python scripts like the bitcoin tools created by Gavin Andresen. I thought it was as good a place as any to start.

some good ideas on this thread. thanks all.
good luck OP.


Title: Re: What programming language to learn?
Post by: qbg on July 12, 2011, 12:30:00 AM
and my favourite is erlang , though in the end it all boils down to 3 logical operations, so, who cares...
NAND is universal, and so is NOR (Minecraft redstone circuits are NOR based).

I wouldn't recommend Lisp unless you want to become a computer scientist or to write programs in Emacs. Most people learn to program so they can achieve things, not for the art of programming itself. Python is a language that gets stuff done in very few lines of code, which is what most people want/need.

That's an horrible advice. >:(!. Software quality is decaying because now days the average programmer don't cares enough to properly learn the underlying theory required to make quality software. Instead they just want to "achieve things" or "get things done", as if to acquire knowledge wasn't an achievement in itself. Ignorance of the principles of your work is not an option. Please don't incentive new programmers to continue polluting the software collection with crap.


Lucky for you, the main pushers of "Get things done" are companies that need to get the software coding done as quickly as possible for as little money as possible. That means that the "get things done" development is pretty much limited to pay-for software. Your freeware/GNU stuff is still safe :)
Yeah, Lisp has the downside that it is so powerful that other languages become tedious and time consuming to use.

If you want to work on the details of Bitcoin itself, of course, learn C. If you want to build anything that needs to be as efficient and secure as humanly possible, there's just no other choice.
The language that gladly lets you write code with buffer overrun exploits is secure?


Title: Re: What programming language to learn?
Post by: steelhouse on July 12, 2011, 02:49:54 AM
i wopuld say

hotbasic
freebasic
javascript

java, php, python just makes bloatware.


Title: Re: What programming language to learn?
Post by: ampkZjWDQcqT on July 12, 2011, 04:59:23 PM
In some apps only 1.5 times  slower than C.
 Much faster than other good alternatives.

http://c2.com/cgi/wiki?AsFastAsCee (http://c2.com/cgi/wiki?AsFastAsCee).


Title: Re: What programming language to learn?
Post by: Man From The Future on July 12, 2011, 07:52:36 PM
herp derp php.
Not just for web programming! (Multi-process(PHP has no threading) socket servers in the "wrong" language FTW! :D)


Title: Re: What programming language to learn?
Post by: prof7bit on July 19, 2011, 04:34:05 PM
Has anyone mentioned Free Pascal?

I have started something: http://code.google.com/p/fpbitcoin/ but Its running on low piority at the moment. I hack on it a few hours every few days. I'm doing this (mostly on my own) as an attempt to (a) learn and understand every little detail of the bitcoin protocol and (b) to document for me (and others) what I have found.

If everything succeeds then the end result will be a lightweight cross platform bitcoin client (a non-gui unit implementing the bitcoin protocol and a rich graphical client to manage a wallet) that does not suffer from the many problems of the "official" client. But this might take some time until its usable since I'm only working part time on it and I want to do most of it myself (for the learning effect).



Title: Re: What programming language to learn?
Post by: Spacy on July 19, 2011, 04:39:54 PM
I would start with Python, Java or C++

With PHP/Javascript you learn to write crap code, so don't start with these :)


Title: Re: What programming language to learn?
Post by: prof7bit on July 19, 2011, 04:51:31 PM
Start with a language that is not mainstream, (so don't start with Java, C++, C#, etc.).

The reason is simply because you are much more likely to find people with really deep knowledge who can teach it to you the correct way if you don't use a language that attracts millions and millions of clueless beginners (this is what I call the PHP-effect: The blind leading the blind).

Once you have learned your first pogramming language and know the most important concepts you can easily learn any other language in no time.


Title: Re: What programming language to learn?
Post by: Vladimir on July 19, 2011, 05:26:32 PM
If the question was, "which language is not to learn?" than I would know the answer: "PHP".


Title: Re: What programming language to learn?
Post by: indicasteve on July 19, 2011, 05:52:26 PM
Back in 96 when I took my network engineer skooling, we had one guy come in and showed us how to write a simple webpage in notepad using simple HTML.  That was my first experience in making webpages and just learning how to do that was pretty cool.  I suggest to anyone who wants to learn this stuff to start by making non dynamic websites just using notepad...forget your dreamweaver and frontpage or whatever and learn how to code a webpage by hand in html.... ooo...and don't forget how to code a proper table cuz you will be doing a lot of those later when you start pulling data out of a database in whatever other languages you will learn.

If you don't know your HTML, there is no point in trying to make a web based app is there?

But like many others here, I do agree PHP can be a nightmare so I'm teaching myself some python and loving it....but you still have to know HTML well to make anything.



Title: Re: What programming language to learn?
Post by: angelo95 on July 19, 2011, 05:54:41 PM
If the question was, "which language is not to learn?" than I would know the answer: "PHP".


And why?


Title: Re: What programming language to learn?
Post by: Vladimir on July 19, 2011, 05:57:34 PM
If the question was, "which language is not to learn?" than I would know the answer: "PHP".


And why?

If I answer that I would probably offend a lot of people. So,  I'll pass on it this time.

Also, last time I checked axioms do not require proof.  :o



Title: Re: What programming language to learn?
Post by: angelo95 on July 19, 2011, 08:41:34 PM
If the question was, "which language is not to learn?" than I would know the answer: "PHP".


And why?

If I answer that I would probably offend a lot of people. So,  I'll pass on it this time.

Also, last time I checked axioms do not require proof.  :o



You started the troll... There is no bad language only bad programmers. PHP has the best documentation ever, the most servers running it and since version 5 allows object oriented programming... Sure it offers so much freedom that if you do not code clean your program will be a mess...


Title: Re: What programming language to learn?
Post by: Spacy on July 19, 2011, 09:08:50 PM
PHP ... Sure it offers so much freedom that if you do not code clean your program will be a mess...

You answered the question, avoid PHP if you really want to learn clean programming ;-)


Title: Re: What programming language to learn?
Post by: Vladimir on July 19, 2011, 09:24:34 PM
If the question was, "which language is not to learn?" than I would know the answer: "PHP".


And why?

If I answer that I would probably offend a lot of people. So,  I'll pass on it this time.

Also, last time I checked axioms do not require proof.  :o



You started the troll...

My posts are reflection of my personal experience... which is rather relevant and extensive... if you do not like it feel free to ignore.

There is no bad language only bad programmers. PHP has the best documentation ever, the most servers running it and since version 5 allows object oriented programming... Sure it offers so much freedom that if you do not code clean your program will be a mess...

True, but somehow bad programmers tend to gravitate to PHP. It is like a bad neighbourhood which is best to avoid...

Friends do not let friends to do PHP, you know.



Title: Re: What programming language to learn?
Post by: dazedtrader on July 19, 2011, 09:52:05 PM
It's good to see people suggesting languages that push the boundaries like Haskell and Erlang - although I'm not sure I'd recommend them for a novice programmer as the learning curve is probably a bit too much to start with. Once you're ready to have your mind seriously expanded, check them out...


Title: Re: What programming language to learn?
Post by: Furyan on July 19, 2011, 10:41:27 PM
You are all lightweights.

Programming languages. Posh!

REAL programmers encode their bits directly on the substrate!


Title: Re: What programming language to learn?
Post by: martin on July 19, 2011, 11:22:06 PM
I quite like the idea of what 7 languages in 7 weeks (http://pragprog.com/news/seven-languages-in-seven-weeks-now-in-beta) tries to do, although I wouldn't have picked those seven languages they're a pretty good selection.

My personal pick for a language a week would be (in order):

  • Python
  • C#
  • Haskell
  • C# (LINQ)
  • Erlang
  • C# (Rx)
  • Lua

Python is a nice simple language to start with, it introduces object orientation, first class methods and a load of the functional things which are increasingly popular these days.

Then you've got C# which is something of the core to this whole thing, mostly for LINQ and Rx which are used as demonstrations of other things (I'll get to that later). Make sure to cover generics since they're pretty vital to both Rx and LINQ (and the entire of C# in general)

Haskell is a beautiful language, it's a bit of a pain to learn if you try and come at it from a "normal programming language, you'll wonder why it can't do the simplest things like loops and assignment. But trust me, once you get the hang of Haskell you'll love it, and it will influence how you program in many other languages.

C# (LINQ), LINQ is Language INtegrated Query in C#, it allows you to do functional style programming with C# objects. It's sort of like using Haskell in C# code with C# objects - it's a nice demonstration of how functional paradigms can fit wonderfully into more classic languages.

Erlang is a wonderful language for concurrency and distributed processing, everything is based around concurrent processes and message passing (which, of course, works rather well over a distributed system exchanging packets (messages).

C# (Rx), Reactive eXtensions is a library for C# which builds upon LINQ to provide filtered message streams... just like concurrent processes passing messages. Once again as with LINQ this is a nice demonstration of how a concept like erlang can be made to work well with more classical languages.

Lua, this is a bit of a curveball. Lua is a weird language, it's pretty much paradigmless, you can do pretty much anything you've done in the previous languages in Lua... but you'll have to write the *paradigm* first. This makes it a great way to understand those little niggling details of the things. Try implementing an enumeration and query framework like LINQ/haskell in Lua and I guarantee you'll learn something ;)

As for *how* to learn these languages, well I'm really not sure what to recommend, perhaps trawl project euler for suitable problems for each paradigm. I usually just pick up a language and start using it when I need it - so although I only *know* 4 or 5 languages really well, I'm confident in having a toolkit of 10 or 20 languages which I can pick up when I need them. Hopefully this 7 languages in 7 weeks thing will give you the same confidence just to pick up a language to use it.


Title: Re: What programming language to learn?
Post by: bitplane on July 19, 2011, 11:33:01 PM
I quite like the idea of what 7 languages in 7 weeks (http://pragprog.com/news/seven-languages-in-seven-weeks-now-in-beta) tries to do, although I wouldn't have picked those seven languages they're a pretty good selection.

7 languages in 7 weeks? Why not Japanese, Spanish, Italian, English, Latin, Mandarin, German and French in 7 weeks? A programming language worth learning is something you learn to think in, which means committing several years to its mastery. Something you can learn in a week is not something worth learning. Do you actually know anyone who learned Haskell or even C in a week?!

http://norvig.com/21-days.html


Title: Re: What programming language to learn?
Post by: martin on July 20, 2011, 12:41:30 AM
I learnt haskell in the 48 hours before my exam, which was apparently a very hard exam and I achieved the top classification in ;)

I learnt python in a week when I wanted to build a site for appengine.

I learnt every nook and cranny of java (shudder) in a 12 week group software development coursework project at uni.

The point here is the language that had the most impact was haskell, even though I learnt it the fastest - once I understood the concept the remaining two weeks *after* the exam I spent playing with it taught me very little beyond the precious "aha" moment when I suddenly "got it". The point of 7 languages in 7 weeks is to throw a load of different concepts at you so they all mix together in your head and you're comfortable using the best tool for the job. If you spend several years learning how to use a language and a paradigm you become extremely attached to both of them and start using it for jobs which it isn't ideally suited for.

Obviously once the seven weeks are up you should spend more time learning the languages and paradigms you like in detail, but the important thing is understanding the concepts behind the paradigms (maximising the "aha" moments) not the exact syntax of each language.

What's the use of learning the basics of a load of languages you'll never use any more? Well For example, I no longer use Haskell but still consider it one of my favourite languages because I use LINQ every day, I only love LINQ so much because of what Haskell taught me about the power of that kind of thing. I also develop a lot of networking stuff, and what I learnt from fiddling with erlang for about 12 hours (I never even really wrote a program in it, I just read a lot of the documentation and understood the concept) has a huge influence on that.


Title: Re: What programming language to learn?
Post by: 99Percent on July 21, 2011, 03:44:22 PM
Has anyone mentioned Free Pascal?

I have started something: http://code.google.com/p/fpbitcoin/ but Its running on low piority at the moment. I hack on it a few hours every few days. I'm doing this (mostly on my own) as an attempt to (a) learn and understand every little detail of the bitcoin protocol and (b) to document for me (and others) what I have found.

If everything succeeds then the end result will be a lightweight cross platform bitcoin client (a non-gui unit implementing the bitcoin protocol and a rich graphical client to manage a wallet) that does not suffer from the many problems of the "official" client. But this might take some time until its usable since I'm only working part time on it and I want to do most of it myself (for the learning effect).


Very interesting. I will be following it and hopefully contribute some. I believe there is an ssl_openssl_lib.pas that handles compilation under different OS like win and linux, you might want to use instead (ararat synapse uses it).


Title: Re: What programming language to learn?
Post by: grondilu on July 21, 2011, 03:52:51 PM
Haven't read all this thread, but here is my opinion:

- C is the most influential modern programming language.  You should at least read Kerningam and Rithie's book:  "The C programming language", and trie to write a few C programs.
- python is a widely popular language.  It's very easy to learn and it's a good introduction to even more modern programming languages, which use concepts such as garbage collection and just-in-time compiling.  It's also an easy way to get familiar with object programming.
- some knowledge of java, javascript and PHP can not be avoided if you want to focus on web programming.


- C++ is nice but tough to master.  I personnaly thought I knew C++, until I read Satoshi's code :)


Title: Re: What programming language to learn?
Post by: Man From The Future on July 21, 2011, 05:37:39 PM
If the question was, "which language is not to learn?" than I would know the answer: "PHP".


And why?

If I answer that I would probably offend a lot of people. So,  I'll pass on it this time.

Also, last time I checked axioms do not require proof.  :o



You started the troll...

My posts are reflection of my personal experience... which is rather relevant and extensive... if you do not like it feel free to ignore.

There is no bad language only bad programmers. PHP has the best documentation ever, the most servers running it and since version 5 allows object oriented programming... Sure it offers so much freedom that if you do not code clean your program will be a mess...

True, but somehow bad programmers tend to gravitate to PHP. It is like a bad neighbourhood which is best to avoid...

Friends do not let friends to do PHP, you know.


Bad coders don't make the language bad? Although it has no consistency in naming of built-ins, which is annoying, and no threading, which is really annoying, and tells you "Stop trying to use PHP for this you should be using something else", which can be annoying until you learn something else. The discussion in this thread makes me want to learn python, and mess around with C# some more.

Although I know I won't get good at them because I have nothing to code just now that I want to code in them, but I hope I shall eventually...


Title: Re: What programming language to learn?
Post by: martin on July 21, 2011, 08:33:12 PM
I have nothing to code just now that I want to code in them, but I hope I shall eventually...

Trying writing a program that aggregates streams of bitcoin financial data using Rx and then selects "interesting" things out of the combinations of these different data streams. That's how I learnt Rx ;)


Title: Re: What programming language to learn?
Post by: zonezICO on February 15, 2018, 07:57:32 PM
Hello, sorry to bump this older thread but was curious if anybody had an opinion now in 2018 on which languages would be most helpful for bitcoin/blockchain projects?

C++ is what bitcoin is written in

Go is mature port for Ethereum but the bug with the Parity wallet in Solidity?

Many local coding schools are pitching Python as good language and since I also have an interest in data science/GIS, this would be nice since I'd be knocking out 3 birds with one stone but I also like Clojure based on the designer of the language, Rich Hickey.  Love his talks on Youtube.

Haven't found much on Scala but since Spark is built with Scala, was hoping to somehow work on how blockchain and Big Data might compliment each other?

I know Tezos was built on Ocaml but if I'm going to learn a language that has both functional and OO elements, then I'd prefer to stick with Clojure.

Lastly, not sure if how concurrency/parallelism directly impacts blockchain but if it does, why aren't more projects built using Elixir/Erlang?

Any thoughts greatly appreciated!

thanks in advance,
Z


Title: Re: What programming language to learn?
Post by: ilyashpakin2015 on March 01, 2018, 10:55:14 AM
Basically all sites are in English Therefore it's better to know English so that it's much easier for you.


Title: Re: What programming language to learn?
Post by: Theyasirahmad on March 01, 2018, 11:18:03 AM
start with C language because it will enhance your logic building than go for advance java or python 


Title: Re: What programming language to learn?
Post by: Grasik on August 26, 2018, 12:09:14 PM
I am thinking about Python. What can you tell me about it?


Title: Re: What programming language to learn?
Post by: vitek146 on August 26, 2018, 12:25:15 PM
Python should be your first programming language because you will quickly learn how to think like a programmer becouse Python is very readable and  is easy to learn.The learning curve is very gradual other languages can be quite steep.
Also PHP is a great entry point. More than 50 percent of the web is built using PHP,PHP is known for being easy to get started.


Title: Re: What programming language to learn?
Post by: suchi2591 on August 26, 2018, 12:41:31 PM
Start with C, then learn oops, and learn Java .
These are sufficient if you are not to build something language specific. I am also a software engineer. C/Java are sufficient if you want to grow in the area of computer science.
Bu the way, what is your moto behind leaning a language.?


Title: Re: What programming language to learn?
Post by: Andrea43Turner on August 28, 2018, 09:54:18 AM
That is necessary for any cryptocurrency needs. It is difficult for beginners. Is there a simpler way?


Title: Re: What programming language to learn?
Post by: A Feeder on September 14, 2018, 03:53:55 PM
You should choose either go to C or go to python that two is good to for us to use in language learn, because C give us more knowledge and understanding about programming and also will easier to learn any form of programming language and python is easier to learn and will allow you to achieve results way faster. So its up to you which the to of us you choose to use.