Bitcoin Forum
May 25, 2018, 11:39:25 AM *
News: Latest stable version of Bitcoin Core: 0.16.0  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 4 [5]  All
  Print  
Author Topic: What programming language to learn?  (Read 12830 times)
Furyan
Full Member
***
Offline Offline

Activity: 175
Merit: 100



View Profile
July 19, 2011, 10:41:27 PM
 #81

You are all lightweights.

Programming languages. Posh!

REAL programmers encode their bits directly on the substrate!
1527248365
Hero Member
*
Offline Offline

Posts: 1527248365

View Profile Personal Message (Offline)

Ignore
1527248365
Reply with quote  #2

1527248365
Report to moderator
1527248365
Hero Member
*
Offline Offline

Posts: 1527248365

View Profile Personal Message (Offline)

Ignore
1527248365
Reply with quote  #2

1527248365
Report to moderator
1527248365
Hero Member
*
Offline Offline

Posts: 1527248365

View Profile Personal Message (Offline)

Ignore
1527248365
Reply with quote  #2

1527248365
Report to moderator
Every time a block is mined, a certain amount of BTC (called the subsidy) is created out of thin air and given to the miner. The subsidy halves every four years and will reach 0 in about 130 years.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1527248365
Hero Member
*
Offline Offline

Posts: 1527248365

View Profile Personal Message (Offline)

Ignore
1527248365
Reply with quote  #2

1527248365
Report to moderator
martin
Full Member
***
Offline Offline

Activity: 150
Merit: 100



View Profile WWW
July 19, 2011, 11:22:06 PM
 #82

I quite like the idea of what 7 languages in 7 weeks 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 Wink

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

Activity: 321
Merit: 250

Firstbits: 1gyzhw


View Profile WWW
July 19, 2011, 11:33:01 PM
 #83

I quite like the idea of what 7 languages in 7 weeks 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
martin
Full Member
***
Offline Offline

Activity: 150
Merit: 100



View Profile WWW
July 20, 2011, 12:41:30 AM
 #84

I learnt haskell in the 48 hours before my exam, which was apparently a very hard exam and I achieved the top classification in Wink

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

Activity: 193
Merit: 100



View Profile WWW
July 21, 2011, 03:44:22 PM
 #85

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).
grondilu
Legendary
*
Offline Offline

Activity: 1134
Merit: 1001


View Profile
July 21, 2011, 03:52:51 PM
 #86

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 Smiley
Man From The Future
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250


“Blockchain Just Entered The Real World”


View Profile
July 21, 2011, 05:37:39 PM
 #87

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.


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

      ███████████████████████
     ███▄ ▄▄▄▄   ▄▄▄█▀▀  █████
    ███  █▀  ▀█▀▀▀       ▐█ ███
   ███  ▄██▄▄█▀▄▄▄        █▌ ███
  ███ ▄█▀  █     ▀█▄▄     ▐█  ▐██
 ███▄█▀    █        ▀█▄▄  ▄▄▄ ██
████▀      █           ▀██▀   ▀█ ██
 ██▀█▄     █          ▄█▀▀█▄▄▄█▀██
  ██ ▀█▄   █      ▄▄█▀▀    ▐█  ██
   ██  ▀█▄█▀▀█▄▄█▀▀        █▌ ██
    ███  █▄  ▄█▀█▄▄▄      █▌███
     ███  ▀▀▀▀     ▀▀▀█▄▄▐████
      ███████████████████████

 ▄▄       ▄▄▄        ▄▄   ▄▄▄▄▄ 
  ▀█▄   ▄█▀ ▀█▄    ▄█▀ ▄█▀▀   ▀▀█▄
    ▀█▄█▀     ▀█▄▄█▀  ▐█         █▌
    ▄█▀█▄      ▄█▀    ▐█         █▌
  ▄█▀   ▀█▄  ▄█▀       █▄       ▄█
▄█▀       ▀██▀          ▀▀█▄▄▄█▀▀


Network
BLOCKCHAIN JUST ENTERED THE REAL WORLD
  Decentralized Crypto-Location Oracle Network
GET WHITELISTED FOR TOKEN SALE ( Limited )

WHITE PAPER  ││  ANN Thread  Telegram   Medium   Twitter   Reddit
martin
Full Member
***
Offline Offline

Activity: 150
Merit: 100



View Profile WWW
July 21, 2011, 08:33:12 PM
 #88

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 Wink
zonezICO
Newbie
*
Offline Offline

Activity: 13
Merit: 1

Trying to help independent musicians and artists


View Profile WWW
February 15, 2018, 07:57:32 PM
 #89

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

Startup helping indie musicians/artists
ilyashpakin2015
Jr. Member
*
Offline Offline

Activity: 48
Merit: 0


View Profile
March 01, 2018, 10:55:14 AM
 #90

Basically all sites are in English Therefore it's better to know English so that it's much easier for you.
Theyasirahmad
Jr. Member
*
Offline Offline

Activity: 39
Merit: 0


View Profile
March 01, 2018, 11:18:03 AM
 #91

start with C language because it will enhance your logic building than go for advance java or python 
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!