Bitcoin Forum
December 07, 2016, 12:32:36 PM *
News: To be able to use the next phase of the beta forum software, please ensure that your email address is correct/functional.
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 [4] 5 »  All
  Print  
Author Topic: What programming language to learn?  (Read 11834 times)
Bitcoin Harbor
Jr. Member
*
Offline Offline

Activity: 34



View Profile WWW
July 11, 2011, 10:41:39 PM
 #61

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

http://bitcoinharbor.com - buy and sell for Bitcoins!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1481113956
Hero Member
*
Offline Offline

Posts: 1481113956

View Profile Personal Message (Offline)

Ignore
1481113956
Reply with quote  #2

1481113956
Report to moderator
1481113956
Hero Member
*
Offline Offline

Posts: 1481113956

View Profile Personal Message (Offline)

Ignore
1481113956
Reply with quote  #2

1481113956
Report to moderator
timsmith
Newbie
*
Offline Offline

Activity: 27


View Profile
July 11, 2011, 10:44:13 PM
 #62

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.
k
Sr. Member
****
Offline Offline

Activity: 452


View Profile
July 11, 2011, 10:55:25 PM
 #63

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.
qbg
Member
**
Offline Offline

Activity: 75


View Profile
July 12, 2011, 12:30:00 AM
 #64

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. Angry!. 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 Smiley
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?
steelhouse
Hero Member
*****
Offline Offline

Activity: 700


View Profile
July 12, 2011, 02:49:54 AM
 #65

i wopuld say

hotbasic
freebasic
javascript

java, php, python just makes bloatware.
Ukigo
Hero Member
*****
Offline Offline

Activity: 924


View Profile
July 12, 2011, 04:45:38 AM
 #66

Quote
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

For web Ocaml especially Ocsigen better than Haskell.

Also i vote for ATS :
www.ats-lang.org
In some apps only 1.5 times  slower than C.
 Much faster than other good alternatives.

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
ampkZjWDQcqT
Member
**
Offline Offline

Activity: 70


GNU is not UNIX


View Profile
July 12, 2011, 04:59:23 PM
 #67

In some apps only 1.5 times  slower than C.
 Much faster than other good alternatives.

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

If you found my comment useful please express your gratitude by doing an action of similar magnitude towards a better society. Thanks you!.
Ukigo
Hero Member
*****
Offline Offline

Activity: 924


View Profile
July 12, 2011, 05:44:47 PM
 #68

I only mean that ATS can produce binaries that
somewhat faster than many other compilers can.

Also ATS expressive and have clean syntax )
New times - new languages.

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Man From The Future
Full Member
***
Offline Offline

Activity: 126


View Profile
July 12, 2011, 07:52:36 PM
 #69

herp derp php.
Not just for web programming! (Multi-process(PHP has no threading) socket servers in the "wrong" language FTW! Cheesy)
prof7bit
Hero Member
*****
Offline Offline

Activity: 672



View Profile WWW
July 19, 2011, 04:34:05 PM
 #70

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).


Old Bitcoins recycling and disposal: 1N7ZcHoe77JncRYAg27RVqJZbrjqUQ77WE
Blockchain.info -> Multibit converter (and much more) https://github.com/prof7bit/wallet-key-tool
Spacy
Full Member
***
Offline Offline

Activity: 168


View Profile
July 19, 2011, 04:39:54 PM
 #71

I would start with Python, Java or C++

With PHP/Javascript you learn to write crap code, so don't start with these Smiley
prof7bit
Hero Member
*****
Offline Offline

Activity: 672



View Profile WWW
July 19, 2011, 04:51:31 PM
 #72

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.

Old Bitcoins recycling and disposal: 1N7ZcHoe77JncRYAg27RVqJZbrjqUQ77WE
Blockchain.info -> Multibit converter (and much more) https://github.com/prof7bit/wallet-key-tool
Vladimir
Hero Member
*****
Offline Offline

Activity: 812


-


View Profile
July 19, 2011, 05:26:32 PM
 #73

If the question was, "which language is not to learn?" than I would know the answer: "PHP".

-
indicasteve
Full Member
***
Offline Offline

Activity: 140



View Profile WWW
July 19, 2011, 05:52:26 PM
 #74

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.


Art Express!  Native American Art, Crafts and Weapons!  coingig.com/ArtExpress
angelo95
Member
**
Offline Offline

Activity: 84


View Profile
July 19, 2011, 05:54:41 PM
 #75

If the question was, "which language is not to learn?" than I would know the answer: "PHP".


And why?
Vladimir
Hero Member
*****
Offline Offline

Activity: 812


-


View Profile
July 19, 2011, 05:57:34 PM
 #76

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.  Shocked


-
angelo95
Member
**
Offline Offline

Activity: 84


View Profile
July 19, 2011, 08:41:34 PM
 #77

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.  Shocked



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...
Spacy
Full Member
***
Offline Offline

Activity: 168


View Profile
July 19, 2011, 09:08:50 PM
 #78

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 ;-)
Vladimir
Hero Member
*****
Offline Offline

Activity: 812


-


View Profile
July 19, 2011, 09:24:34 PM
 #79

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.  Shocked



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.


-
dazedtrader
Newbie
*
Offline Offline

Activity: 25


View Profile
July 19, 2011, 09:52:05 PM
 #80

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...

Why not buy me a cup of coffee: 1BcLU9n1TfoLnkgC1p2wqT2SyP354XTngW
Pages: « 1 2 3 [4] 5 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!