Bitcoin Forum
November 07, 2024, 06:54:37 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: What are the pros and cons of coding an alt-coin in C#?  (Read 2408 times)
neuromancer56 (OP)
Newbie
*
Offline Offline

Activity: 40
Merit: 0



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?   
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


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: 146
Merit: 100



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
Merit: 250


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: 1890
Merit: 1086


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
Merit: 1036


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: 415
Merit: 250



View Profile
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.
BrightAnarchist
Donator
Legendary
*
Offline Offline

Activity: 853
Merit: 1000



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: 1274
Merit: 1060


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

Activity: 59
Merit: 0


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: 3108
Merit: 1359



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

In the progress Cheesy

https://github.com/CryptoManiac/NovacoinLibrary
lordoliver
Legendary
*
Offline Offline

Activity: 1666
Merit: 1020

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: 2142
Merit: 1010

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
Merit: 1002


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: 3108
Merit: 1359



View Profile
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
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!