For everyone elses benefit and to clarify for Zulzedd and heretolearn: I am going to explain the Linux dilemma in historical terms, current status, and the abstracted wine architecture so you may understand all sides without drawing false conclusions.
1) Regarding slow development and launching without Linux: We launched October 17th 2013. At that time, I already had two Indian programmers working for me full time (out of my pocket), and they were not cheap, and their task was to finish the equivalent of what I did in Windows in Linux and Mac. By the end of the year, what I received was not enterprise quality or compatible enough with the boinchash security portion to go live. I hired a 3rd Linux dev, to fix the problems. This attempt was much better, some of the code was compatible, but he took a cryptographic approach inside c++ that would expose the class to fraud. I was not about to compromise security, so I had some disagreements and he asked me to spend $5000 to fix the problem. I had some issues spending more for a pie in the sky promise and he dissapeared. To add to the drama, I had some specific requirements to maintain security as far as the chosen classes, interfaces between windows and Linux that had to be met. When I consolidated the code review, the code was rewritten Microsoft code in c++ that had certain flaws that hackers can use to attack us.
On the windows side, we have our cpuminer integrated into our gvm. We also have the ability to verify credits from the boinc API. If we were to port the Russian version, we would no longer have a GVM and I did not want to compromise security. So in essence, we burned through money and time and ended up at Christmas time, when I took over the Linux side. In the next 60 days, I ported the necessary underlying regsvr32, security descriptors, GVM, and boinchash compatibility to Linux. Wine is required to run my version, but security is maintained. In my humble opinion 60 days was a relatively short and aggressive timeline and put us 90% of the way back on schedule to release a Linux and mac version. I also hired two architects from Odesk who also costed me substantial money and that code is also useless as it is not compatible. The requirements are relatively complicated. Heretolearn assumes the client must be native but does not understand the risk involved.
2) Regarding Wine: I want to point out, we are NOT emulating windows by running gridcoin-qt in wine. The client is being re-written with a compatibility layer between Microsoft c#.net and Linux in a way that the functions can be executed on any platform; Linux;mac & wine. Before we go into Why that is the case, the point is we have 100 megs of source code to do much higher level operations dealing with SQL, the sql ledger, the api verification, and the boinc hash, the cpu miner beacons, etc. If we were to maintain 3 codebases: We would need 3 Rob H's full time to debug and maintain the code over the long term. But even simpler than that, I have chosen 1 codebase so that we can move on to polishing gridcoin for the end user. If we can maintain one code base, it will be a magnitude better for Gridcoin in the long term, as the plans are not to create a simple coin that can send money and mine, the plan is to create a coin that can do confirms, help humanity, have internal voting for our future foundation, sql ledger, all kinds of features other coins don't have. And you are not living in the current state of reality if you think you can write all of that 3 times, do 3 releases, support 3 versions "easily". It is NOT the case. Maintaining software takes hundreds of hours per year. Think of the 80%/20% rule for new development and maintenance.
Next: Installing wine on your Linux or Mac system is a single command: apt-get install wine
It's a dependency for gridcoin-qt; it has nothing to do with "wanting" to install wine. We could add it to the installer!
Wine is not an emulator. So, the code running on Linux is running natively.
So, please get it out of your head that this is not the way to go, is not native code, and that we are slacking, because all of these things are false.
I hope I have justified the reason that wine will work: When features are added to Gridcoin in the future we will run a deploy script and all 3 versions of the client will have an updated installer with a compatible version that runs on all platforms. The version inside "about" will be the same, and therefore we will support one codebase.
Regarding downsides with running Wine related to performance: There ARE NO DOWNSIDES. Read the wine FAQ if you don't believe me. The code is running natively.
Cheers,
Rob Halford