Bitcoin Forum
October 21, 2017, 03:54:54 AM *
News: Latest stable version of Bitcoin Core: 0.15.0.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: What are the pros and cons of coding an alt-coin in C#?  (Read 2267 times)
neuromancer56
Jr. Member
*
Offline Offline

Activity: 40



View Profile
July 28, 2013, 12:18:25 PM
 #1

I'm working on a new alt-coin called Flexcoin.   My work has been in C# since it was first introduced way back around 2001.    So this is my area of strength.  I putzed around in C++ back when it first came out in 1985.   I know things have changed with C++ over the years, namely things like smart pointers and the like.   But I still see C# as having a huge advantage in programmer productivity.   So for me, I'm strongly considering branching Novacoin to create a starting point for Flexcoin but then using C# as much as possible for new development.   

I see one big con of this being that users installs would be larger (requiring Mono if they are not on Windows).  Requiring Xamarin if they are on android or iOS.    But is this really so terrible?   Am I completely barking up the wrong tree and should I learn C++, Java, and objective C?   

LTC: Lc1jUu1B26jA9mEg9p2X2cyhsihHNecDYi
Playing video games destroyed my life.   Fortunately I have 2 extra lives.
1508558094
Hero Member
*
Offline Offline

Posts: 1508558094

View Profile Personal Message (Offline)

Ignore
1508558094
Reply with quote  #2

1508558094
Report to moderator
1508558094
Hero Member
*
Offline Offline

Posts: 1508558094

View Profile Personal Message (Offline)

Ignore
1508558094
Reply with quote  #2

1508558094
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
CIYAM
Legendary
*
Offline Offline

Activity: 1862


Ian Knowles - CIYAM Lead Developer


View Profile WWW
July 28, 2013, 12:27:00 PM
 #2

You should consider whether a C# solution is going to go down well with Linux users (of which there are many on this forum).

Basically Mono is the only C# IDE for Linux and I don't think it is installed by standard in most distros (although for that matter neither is boost so maybe that isn't a big deal in itself).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
transcoder
Full Member
***
Offline Offline

Activity: 147



View Profile WWW
July 28, 2013, 12:58:12 PM
 #3

It boils down to cross-platform compatibility. Bitcoin / Litecoin and this current generation of alt-coins is based off of C++ and uses the QT framework for GUI elements. That makes it a lot easier to compile on various platforms. I haven't dabbled in C# in ages, but if you're able to build the daemon and GUI with C# on Windows, Linux and Mac OS X, I don't see why not if that's your area of expertise.

fishy
Sr. Member
****
Offline Offline

Activity: 476


What do you call a fish with no eyes? A Fsh!


View Profile
July 28, 2013, 01:11:42 PM
 #4

This is a bit off topic, but I'm not a programmer.  What differs between C++ and C#?

\   \  \ \\\\\\\\\\\\\\\\◥◣◢◤//////////////// /  /   /
Win88.me ❖ Fair, Trusted Online BTC Gambling ❖
/   /  / ////////////////◢◤◥◣\\\\\\\\\\\\\\\\ \  \   \
CIYAM
Legendary
*
Offline Offline

Activity: 1862


Ian Knowles - CIYAM Lead Developer


View Profile WWW
July 28, 2013, 01:13:29 PM
 #5

This is a bit off topic, but I'm not a programmer.  What differs between C++ and C#?

They are completely different languages (try some internet searching if you are actually interested).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
eduffield
Legendary
*
Offline Offline

Activity: 1176


Dash Developer


View Profile WWW
July 28, 2013, 01:55:40 PM
 #6

I was just thinking about this for a coin I am considering making... I think it's a good idea for the following reasons.

* Primecoin started out very low performance and the community took it upon themselves to improve it.
* If the coin is a really good idea, people will adapt your c# to cython/c/c++ to gain an advantage and after the advantage is leaving they would open source it

I think this would basically add 1 extra step to the arms race that happens with new coins. I.e, Bytecode, machine code, GPU, ASICs, etc.

Dash - Digital Cash | dash.org | dashfoundation.io | dashgo.io
BazkieBumpercar
Sr. Member
****
Offline Offline

Activity: 357


Open Money - Powering Blockchain Acceptance


View Profile WWW
July 28, 2013, 02:47:24 PM
 #7

I don't really see the use - C++ can do the same as C#, but on more platforms.


         %%%%%%%%%%(        
      %%%%%%%%%%%%%  %%     
    %%%%%%%%%%%%%%  .%%%%   
   %%%%%%%%        %%%%%%%  
  /%%%%%%           %%%%%%/ 
  %%%%%%(           (%%%%%% 
  %%%%%%(           (%%%%%% 
  ,%%%%%%           %%%%%%, 
   %%%%%%%%       %%%%%%%%  
    %%%%%%%%%%%%%%%%%%%%%   
      %%%%%%%%%%%%%%%%%     
         %%%%%%%%%%%       
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
.
. OPEN MONEY PLATFORM .
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
{}
BrightAnarchist
Donator
Legendary
*
Offline Offline

Activity: 853



View Profile
July 28, 2013, 03:03:17 PM
 #8

I don't really see the use - C++ can do the same as C#, but on more platforms.

That's like saying assembly can do what C does, so why use C?

C# is a higher level language than C++, which means more programmer productivity - at the cost of some performance, of course.

Personally, I go as high level as possible (python,awk,lisp,etc) until I need more non-I/O performance. Then you look down the list toward java/C# and finally C/C++ if you really need it for time critical pieces of code. If you lean towards high level languages, you'll get stuff done waaay faster and with fewer bugs

- a former/reformed C++ fanatic
fluffypony
Donator
Legendary
*
Offline Offline

Activity: 1232


GetMonero.org / MyMonero.com


View Profile WWW
July 28, 2013, 03:05:21 PM
 #9

That's like saying assembly can do what C does, so why use C?

C# is a higher level language than C++, which means more programmer productivity - at the cost of some performance, of course.

Personally, I go as high level as possible (python,awk,lisp,etc) until I need more non-I/O performance. Then you look down the list toward java/C# and finally C/C++ if you really need it for time critical pieces of code. If you lean towards high level languages, you'll get stuff done waaay faster and with fewer bugs

- a former/reformed C++ fanatic

True, but since we're talking about an alt-coin, why bother? Why reinvent the wheel, when there is an existing codebase you can work off of and improve?

bitpar
Jr. Member
*
Offline Offline

Activity: 59


View Profile
July 28, 2013, 03:24:47 PM
 #10

You wouldn't be able to use Bitcoin's source code as a starting point without major work and you won't be able to easily implement improvements made to Bitcoin. Performance may be an issue, C# uses garbage collection, which introduces unnecessary overhead. There are ways to use C++ classes in a C# program, this might be an option but I don't have experience mixing C# and C++ to know if it's a good idea.
Balthazar
Legendary
*
Offline Offline

Activity: 2212


BTC-e Divine Overlord, ask cryptodevil for details


View Profile WWW
August 31, 2015, 10:29:43 AM
 #11

In the progress Cheesy

https://github.com/CryptoManiac/NovacoinLibrary

novaco.in | EtherMine.ru (65 GH/s, DGM 0.5%) | EtherDig.Net (6GH/s, PPS 1.5%)
฿: 1QJ8RFiRKsJKmY8ZAjxfCUeBZXmjthK4Pk: 4RgnHWtnJWEyMhqhDdazW3Hdr7cx5ybF6i ETH: 0x5B475Febb3018f41d0Ac3C2f1A864bd102ab5a2E
lordoliver
Legendary
*
Offline Offline

Activity: 1232

expect(brain).toHaveBeenUsed()


View Profile
August 31, 2015, 01:25:35 PM
 #12

Why do people not understand, that a coin is not the program but the protocol. It doesn't matter, which language you use.
Anyone can rewrite the code in another language and use it in the same chain (see XT, its the same language, but wouldn't need to). The only problem is, if you change the protocol...
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 1736

Newbie


View Profile
August 31, 2015, 07:54:52 PM
 #13

C# is a higher level language than C++, which means more programmer productivity - at the cost of some performance, of course.

Lose some performance (assuming JIT compilation doesn't work) but gain security. This is a no-brainer.
Este Nuno
Legendary
*
Offline Offline

Activity: 826


amarha


View Profile
September 01, 2015, 12:12:52 PM
 #14

C# is much better these days about cross platform compatibility and open source. It's only going to get better too from what I can tell from observing Microsoft's path thus far. They've changed their strategy a lot.

Check this out: http://techcrunch.com/2015/04/29/microsoft-shocks-the-world-with-visual-studio-code-a-free-code-editor-for-os-x-linux-and-windows/
Balthazar
Legendary
*
Offline Offline

Activity: 2212


BTC-e Divine Overlord, ask cryptodevil for details


View Profile WWW
September 05, 2015, 03:16:26 PM
 #15

C# is much better these days about cross platform compatibility and open source. It's only going to get better too from what I can tell from observing Microsoft's path thus far. They've changed their strategy a lot.

Check this out: http://techcrunch.com/2015/04/29/microsoft-shocks-the-world-with-visual-studio-code-a-free-code-editor-for-os-x-linux-and-windows/
It's linked with glibc 2.14. My system has only 2.13, so their blob doesn't work for me Roll Eyes

novaco.in | EtherMine.ru (65 GH/s, DGM 0.5%) | EtherDig.Net (6GH/s, PPS 1.5%)
฿: 1QJ8RFiRKsJKmY8ZAjxfCUeBZXmjthK4Pk: 4RgnHWtnJWEyMhqhDdazW3Hdr7cx5ybF6i ETH: 0x5B475Febb3018f41d0Ac3C2f1A864bd102ab5a2E
Pages: [1]
  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!