Author Topic: My interview on XCP Weekly About the Entire Cryptocurrency Space  (Read 6396 times)

0 Members and 1 Guest are viewing this topic.

Offline monsterer

But this is not the issue Charles raised. He said it's a bad choice because it does not encourage third-party companies to join the development ecosystem.

You have to ask yourself how much further along the project would be right now with a more productive language, though. It makes it much easier to delegate the non mission critical parts, like the web server, or API design to other parties if the language is more accessible.
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

jakub

  • Guest
I have someone who could make an amazing UI.. but he is $40k a month, there are not too many who can do what he does.. think a worker proposal would be accepted?
Can you show us anything he's done so far?

jakub

  • Guest
The rest of your points are pretty solid but I wouldn't agree with the one regarding the choice of programming platform.

I disagree. Having used c++ professionally for over 15 years, I can say with honesty that it is a very unproductive language to work with - you spend the majority of the day (on a big project) just waiting for the thing to build and link and when you're not doing that, you're doing the job of the preprocessor working out the optimal header dependency design.

c++ is great for core components which need mission critical performance, but the rest is better suited to a higher level language.

But this is not the issue Charles raised. He said it's a bad choice because it does not encourage third-party companies to join the development ecosystem.
And my point is that at the current moment the back-end stuff is not where third-party help is badly needed, it's the front-end.

The choice of C++ might affect us in the future but right now it is not where the problem is. CNX is amazingly fast at introducing innovation on the back-end and the effectiveness of C++ programming is not where the bottle neck is.

Offline BunkerChainLabs-DataSecurityNode

The choice of C++ as the primary language is really bad. From my experience with Ethereum, Go turned out to be a wonderful ecosystem to work in and it was easier to find open minded talent. Elixir is also promising as the hyperledger guys found out.

In all honestly about languages however, frankly Bitshares would work a lot better being built in something like Java or on the .Net platform. Its really about can I find great talent, are there wonderful tools to work with, is this code going to be easy to manage and update, can I avoid technical debt better in this ecosystem? If I'm doing rapid prototyping, I love python. If I'm building mission critical systems, then I need to significantly reduce the things I have control over to as small as a set as possible and leave the rest to predictable and well vetted behavior. It means you need strong typing, great testing tools, automated memory management, certainly compiled alongside access to certain DSLs that can facilitate specialized testing methodologies. For example Coq proofs are great for modelling consensus and can be written in the JVM ecosystem via Coq->Scala->JVM. .Net has a great family of cryptography verification toolkits written by Dr. Blanchet. While a lot of good crypto code was written by Wei Dai in crypto++ as C++ code, it's important to understand he's a world famous cryptographer, the Bitshares developers are not. If you have to customize things, then do it in a sandbox that holds your hand.
The rest of your points are pretty solid but I wouldn't agree with the one regarding the choice of programming platform.
We are not lacking talent and innovation on the back-end. Quite the opposite, we are struggling to utilize what we already have.

But what we've always been desperately lacking is proper UI implementation to make practical use of the back-end stuff.
And this fortunately has been solved in Graphene by using a solid react.js platform, which is now very open to being expanded by third-party developers.

I have someone who could make an amazing UI.. but he is $40k a month, there are not too many who can do what he does.. think a worker proposal would be accepted?
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+

Offline monsterer

The rest of your points are pretty solid but I wouldn't agree with the one regarding the choice of programming platform.

I disagree. Having used c++ professionally for over 15 years, I can say with honesty that it is a very unproductive language to work with - you spend the majority of the day (on a big project) just waiting for the thing to build and link and when you're not doing that, you're doing the job of the preprocessor working out the optimal header dependency design.

c++ is great for core components which need mission critical performance, but the rest is better suited to a higher level language.
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

jakub

  • Guest
The choice of C++ as the primary language is really bad. From my experience with Ethereum, Go turned out to be a wonderful ecosystem to work in and it was easier to find open minded talent. Elixir is also promising as the hyperledger guys found out.

In all honestly about languages however, frankly Bitshares would work a lot better being built in something like Java or on the .Net platform. Its really about can I find great talent, are there wonderful tools to work with, is this code going to be easy to manage and update, can I avoid technical debt better in this ecosystem? If I'm doing rapid prototyping, I love python. If I'm building mission critical systems, then I need to significantly reduce the things I have control over to as small as a set as possible and leave the rest to predictable and well vetted behavior. It means you need strong typing, great testing tools, automated memory management, certainly compiled alongside access to certain DSLs that can facilitate specialized testing methodologies. For example Coq proofs are great for modelling consensus and can be written in the JVM ecosystem via Coq->Scala->JVM. .Net has a great family of cryptography verification toolkits written by Dr. Blanchet. While a lot of good crypto code was written by Wei Dai in crypto++ as C++ code, it's important to understand he's a world famous cryptographer, the Bitshares developers are not. If you have to customize things, then do it in a sandbox that holds your hand.
The rest of your points are pretty solid but I wouldn't agree with the one regarding the choice of programming platform.
We are not lacking talent and innovation on the back-end. Quite the opposite, we are struggling to utilize what we already have.

But what we've always been desperately lacking is proper UI implementation to make practical use of the back-end stuff.
And this fortunately has been solved in Graphene by using a solid react.js platform, which is now very open to being expanded by third-party developers.

IOHKCharles

  • Guest
Method if I wanted to get involved in BTS, I'd rebuild protoshares and do a sharedrop to a competing chain for a new bitshares. I have no desire to get involved in the current structure.

Offline Method-X

  • Hero Member
  • *****
  • Posts: 1131
  • VIRAL
    • View Profile
    • Learn to code
  • BitShares: methodx
@IOHKCharles Maybe you should campaign as a proxy voter. I mean, assuming you still have any BTS. It would be a powerful statement.

IOHKCharles

  • Guest
Quote
Ghis, this, this and this .. though I can't tell about the choice for C++. I dont think the amount of experienced devs in C++ is smaller than for Go.

Also, the documentation of code improved massively.

Glad to hear it. I haven't honestly invested much time in bitshares 2 nor much about the development side of the project since Toast left. Things could be much better.
« Last Edit: October 15, 2015, 03:50:34 am by IOHKCharles »

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Quote
Also,  can you offer any constructive criticism to the Bts project?  Advise?  Help in any way?  Will you participate in the referral program?  Do you own any Bitshares?  If so, wouldn't it be in your interest to grow the value of those shares? 

When I left the project, I wasn't given any incentive for further participation. Over time I did provide some advice such as the need for smart contracts to fully realize DACs and also some comments on consensus issues, but my biggest concern has always been academic in nature. The concept of building a value stable currency is incredibly compelling and deserves proper modeling and research. Despite raising millions of dollars, the Bitshares project never retained any talent capable of formal modeling of BitUSD and other mechanics and discussing it in a game theoretical or systems theory perspective.

There certainly are critics on the lack of development methodology or test driven development, the physical location of Bitshares development in Blacksburg, VA (chosen for convenience to the founders rather than location of talent), the idiocy seeking to spend all the Angelshares funds rather than conserve them to avoid end of year taxes (why didn't you found a holding company in a jurisdiction with no taxes?). But there really isn't anything that can be done for prior mistakes. You just have to move forward.

If I had to offer any advice, then I'd strongly recommend examining the project from three perspectives. One is technological. One is from an adoption viewpoint. One is from a project management perspective. In terms of technology, bold claims need to be documented and properly communicated. Bitshares is notorious for saying things and having nothing to back them up outside of trust the developers to build it. Demos, source code and whitepapers really go a long way and it requires a lot of foresight. These systems are in the category of mission critical software, not lean agile systems. You're not shipping a cell phone app. You're shipping the Mars Rover. Once you launch it, super hard to change it. So plan ahead and have lots of conversations about how things ought to be done.

In respect to community building, Fuzzy and others have done a good job working hard, but you need to think about the core mission, values and goals of the project (MVG) and distill them to a single 1-2 page handout. Then ask ok, who will be most receptive to our MVG? Meetup groups are wonderful relays and pay enormous dividends for the investment it takes to bootstrap them. Conferences have the absolute lowest RoI. Also you're really not going to win the Bitcoin community. Ignore them and move on to different cliques that have a lot more bang for your buck. Make Bitshares the entry point for someone in cryptocurrency.

In respect to that point, it's really about ease of use and overall experiences. In what ways do you imagine people are going to use Bitshares? Who are natural platform partners? Bitshares 2 is taking a very big pivot it seems to the enterprise market and there is definitely money to be made there, but let's be clear that it comes at a terrible price. Enterprises have AML/KYC requirements and also have to play nice with governments. Ripple Labs learned this the hard way. Thus there will be a likely strong demand for increasing the level of attribution on Bitshares transactions as has happened with Ripple. You simply cannot avoid this pressure because your consensus system uses a federated topology via delegates. They will not be distributed enough in practice to avoid pressure. Second, exchanges using the tech HAVE NO CHOICE but to comply or go to jail.

So the takeaway along these thoughts are that different groups have different needs and it's impossible to satisfy them all. Bitshares has to decide if it's a consumer product or an enterprise product. Understand your community accordingly.

As for project management, best practices include using Scrum with test or behavior driven development, rapid 2-4 week releases with a QA testing phase, some sort of CI process and a dedicated infosec expert involved in the releases. The common CC model is having a testnet and a mainnet. I would strongly collaborate with Blockstream to build a sidechain between the testchain and the mainchain. They are entering your space, a partnership serves a proactive nullifying role as much as it does a technological benefit of having a robust test chain ecosystem. The choice of C++ as the primary language is really bad. From my experience with Ethereum, Go turned out to be a wonderful ecosystem to work in and it was easier to find open minded talent. Elixir is also promising as the hyperledger guys found out.

In all honestly about languages however, frankly Bitshares would work a lot better being built in something like Java or on the .Net platform. Its really about can I find great talent, are there wonderful tools to work with, is this code going to be easy to manage and update, can I avoid technical debt better in this ecosystem? If I'm doing rapid prototyping, I love python. If I'm building mission critical systems, then I need to significantly reduce the things I have control over to as small as a set as possible and leave the rest to predictable and well vetted behavior. It means you need strong typing, great testing tools, automated memory management, certainly compiled alongside access to certain DSLs that can facilitate specialized testing methodologies. For example Coq proofs are great for modelling consensus and can be written in the JVM ecosystem via Coq->Scala->JVM. .Net has a great family of cryptography verification toolkits written by Dr. Blanchet. While a lot of good crypto code was written by Wei Dai in crypto++ as C++ code, it's important to understand he's a world famous cryptographer, the Bitshares developers are not. If you have to customize things, then do it in a sandbox that holds your hand.

 The last points are examples of philosophical differences. Reasonable people can disagree with me. But the lack of formalism for concepts like BitUSD and also utter lack of documentation for pretty much every piece of the protocol are not excusable as a philosophical disagreement. It's laziness or incompetence. Your community is making extraordinary claims about things. They have to be backed up with theory and code. You will not get respect until that's done.
   
Ghis, this, this and this .. though I can't tell about the choice for C++. I dont think the amount of experienced devs in C++ is smaller than for Go.

Also, the documentation of code improved massively.

IOHKCharles

  • Guest
Quote
Also,  can you offer any constructive criticism to the Bts project?  Advise?  Help in any way?  Will you participate in the referral program?  Do you own any Bitshares?  If so, wouldn't it be in your interest to grow the value of those shares? 

When I left the project, I wasn't given any incentive for further participation. Over time I did provide some advice such as the need for smart contracts to fully realize DACs and also some comments on consensus issues, but my biggest concern has always been academic in nature. The concept of building a value stable currency is incredibly compelling and deserves proper modeling and research. Despite raising millions of dollars, the Bitshares project never retained any talent capable of formal modeling of BitUSD and other mechanics and discussing it in a game theoretical or systems theory perspective.

There certainly are critics on the lack of development methodology or test driven development, the physical location of Bitshares development in Blacksburg, VA (chosen for convenience to the founders rather than location of talent), the idiocy seeking to spend all the Angelshares funds rather than conserve them to avoid end of year taxes (why didn't you found a holding company in a jurisdiction with no taxes?). But there really isn't anything that can be done for prior mistakes. You just have to move forward.

If I had to offer any advice, then I'd strongly recommend examining the project from three perspectives. One is technological. One is from an adoption viewpoint. One is from a project management perspective. In terms of technology, bold claims need to be documented and properly communicated. Bitshares is notorious for saying things and having nothing to back them up outside of trust the developers to build it. Demos, source code and whitepapers really go a long way and it requires a lot of foresight. These systems are in the category of mission critical software, not lean agile systems. You're not shipping a cell phone app. You're shipping the Mars Rover. Once you launch it, super hard to change it. So plan ahead and have lots of conversations about how things ought to be done.

In respect to community building, Fuzzy and others have done a good job working hard, but you need to think about the core mission, values and goals of the project (MVG) and distill them to a single 1-2 page handout. Then ask ok, who will be most receptive to our MVG? Meetup groups are wonderful relays and pay enormous dividends for the investment it takes to bootstrap them. Conferences have the absolute lowest RoI. Also you're really not going to win the Bitcoin community. Ignore them and move on to different cliques that have a lot more bang for your buck. Make Bitshares the entry point for someone in cryptocurrency.

In respect to that point, it's really about ease of use and overall experiences. In what ways do you imagine people are going to use Bitshares? Who are natural platform partners? Bitshares 2 is taking a very big pivot it seems to the enterprise market and there is definitely money to be made there, but let's be clear that it comes at a terrible price. Enterprises have AML/KYC requirements and also have to play nice with governments. Ripple Labs learned this the hard way. Thus there will be a likely strong demand for increasing the level of attribution on Bitshares transactions as has happened with Ripple. You simply cannot avoid this pressure because your consensus system uses a federated topology via delegates. They will not be distributed enough in practice to avoid pressure. Second, exchanges using the tech HAVE NO CHOICE but to comply or go to jail.

So the takeaway along these thoughts are that different groups have different needs and it's impossible to satisfy them all. Bitshares has to decide if it's a consumer product or an enterprise product. Understand your community accordingly.

As for project management, best practices include using Scrum with test or behavior driven development, rapid 2-4 week releases with a QA testing phase, some sort of CI process and a dedicated infosec expert involved in the releases. The common CC model is having a testnet and a mainnet. I would strongly collaborate with Blockstream to build a sidechain between the testchain and the mainchain. They are entering your space, a partnership serves a proactive nullifying role as much as it does a technological benefit of having a robust test chain ecosystem. The choice of C++ as the primary language is really bad. From my experience with Ethereum, Go turned out to be a wonderful ecosystem to work in and it was easier to find open minded talent. Elixir is also promising as the hyperledger guys found out.

In all honestly about languages however, frankly Bitshares would work a lot better being built in something like Java or on the .Net platform. Its really about can I find great talent, are there wonderful tools to work with, is this code going to be easy to manage and update, can I avoid technical debt better in this ecosystem? If I'm doing rapid prototyping, I love python. If I'm building mission critical systems, then I need to significantly reduce the things I have control over to as small as a set as possible and leave the rest to predictable and well vetted behavior. It means you need strong typing, great testing tools, automated memory management, certainly compiled alongside access to certain DSLs that can facilitate specialized testing methodologies. For example Coq proofs are great for modelling consensus and can be written in the JVM ecosystem via Coq->Scala->JVM. .Net has a great family of cryptography verification toolkits written by Dr. Blanchet. While a lot of good crypto code was written by Wei Dai in crypto++ as C++ code, it's important to understand he's a world famous cryptographer, the Bitshares developers are not. If you have to customize things, then do it in a sandbox that holds your hand.

 The last points are examples of philosophical differences. Reasonable people can disagree with me. But the lack of formalism for concepts like BitUSD and also utter lack of documentation for pretty much every piece of the protocol are not excusable as a philosophical disagreement. It's laziness or incompetence. Your community is making extraordinary claims about things. They have to be backed up with theory and code. You will not get respect until that's done.
   

Offline DMo09

  • Full Member
  • ***
  • Posts: 101
    • View Profile
Also,  can you offer any constructive criticism to the Bts project?  Advise?

Yes, I would love to hear it, too.
Actually, your criticism (provided it's constructive) is worth much more for me than potential praise.

Agreed. Constructive criticism is more valuable internally. But being cast in good light is more important during an interview IMO.

jakub

  • Guest
Also,  can you offer any constructive criticism to the Bts project?  Advise?

Yes, I would love to hear it, too.
Actually, your criticism (provided it's constructive) is worth much more for me than potential praise.

Offline DMo09

  • Full Member
  • ***
  • Posts: 101
    • View Profile
Hi Charles,

Great interview... on your end.  I did not care for the interviewer or the production quality.  I would cringe whenever the interviewer spoke, and would have to turn up the volume and listen closely when you would speak. 

Also,  can you offer any constructive criticism to the Bts project?  Advise?  Help in any way?  Will you participate in the referral program?  Do you own any Bitshares?  If so, wouldn't it be in your interest to grow the value of those shares? 

I would have liked for you to speak highly of Bts in your interview.  I'm not saying it's your job to promote it, nor to bend sideways just to talk about it, but if you are a friend to the project  then you could have used at least one breath to praise how Bts is the most advanced crypto project in the world (or am I wrong on this?).

Thank you for your contributions to this space and I wish you the best on your ventures!

Offline fuzzy

Fuzzy, I didn't mention Dan a single time here. His record and actions speak for themselves and the community with hold him accountable one way or the other. It's far beyond my concern. As for focusing on my vision, this whole interview covered it over an hour and a half. And with respect to my criticism of Bitshares, I believe it's completely fair given the incredible value proposition of the underlying technology and the problems it addresses, yet the small community and market participation.

You get a reset switch with Bitshares 2. Focus on what can be done better moving forward and how to avoid the mistakes of the past.

In all fairness you didnt really have to say a name because that part is implied since dan is the current "leader" of bitshares. And yes...bitshares has made mistakes.  But as for the community...i think we have one of the most active in crypto.  That is why im trying to get you to realize the value proposition of sharing with those who join a hangout with you.  I mean the simple fact that you want a hangout tells me the community IS very valuable and you recognize how valuable it currently is.  Otherwise you would be talking to and asking for a hangout with another community, and would leave us off your list :P
WhaleShares==DKP; BitShares is our Community! 
ShareBits and WhaleShares = Love :D