Any software engineers here? I just dabbled a bit in Solidity but holy shit what a joke is that...

Any software engineers here? I just dabbled a bit in Solidity but holy shit what a joke is that. Why is Ethereum held in so high regard? It is babby's first programming language.

>integer overflows are a thing
>array indexes wrong way around
>can't have maps in memory, only in storage
>each line of code costs gas, instead of actual computational power used
>no garbage collection
>byte is actually 256 bits
here comes the best part
>no floating points, has to be done by hand

It is beyond me why anyone takes ethereum serious.

Other urls found in this thread:

news.ycombinator.com/item?id=14837176)
news.ycombinator.com/item?id=14691212
blog.zeppelin.solutions/on-the-parity-wallet-multisig-hack-405a8c12e8f7
twitter.com/SFWRedditVideos

I can rationalize most of these but
>array indexes wrong way around
>byte is 256 bits
the fuck?

Yeah like people here know anything about the technology they 'invest' in. Most people here just gamble and they are happy to throw their money at something if they hear the word moon

>>byte is 256 bits
>the fuck?
Is it actually byte or is it word size?

also without even talking about the code
one word.
cryptokitties

Ethereum is a nice proof of concept tho

Cardano will redeem us

That's why I'm holding ARK instead of ETH.
It supports every single commonly used language.
I predict that it's what most blockchain projects are run on within 2 years

You're not alone thinking Solidity is shit, I've seen it mentioned quite a few times over at HN as well ( see news.ycombinator.com/item?id=14837176)

I checked out Buterin's github and jesus fuck he writes some shitty code, am I missing something or is this guy overrated? All his repos are python/js, why exactly is he so worshipped around here?

opcodes cost gas, not lines of code
'wrong array indexing' - opinion discarded

Byte by definition is 8 bits, i don't recall there being a byte type, or that's it's commonly used, if you mean byte32 then it's pretty obvious, 8*32=256
So a byte32 is 256 bits.

I agree ethereum isn't perfect but I'm sure there's rational behind these design decisions, there's certainly room for improvement and you can see it in newer smart contract platforms.

>never used C++

>each line of code costs gas, instead of actual computational power used
literally wrong. Each opcode executed costs a certain amount.

Last time I tried to use a serious Ethereum smart contract (on etherdelta), I was charged 15$ worth of ETH just on failed method call. I mean I didn't buy anything, but still I was charged. I understand it as a programmer, because whole network was computing all these instruction, but it's such a bullshit. How are normies supposed to use this? It's so expensive. I bought EOS after this failed transaction, because I think all these ETH smart contracts are such bullshit, that no one is going to use them seriously. What do you think about this?

Aren't there test nets for this kind of thing?

this lol.
how ironic op calling it babby's first programming language when he has 0 experience with the godfather of all programming languages

I used smartcontract on erherdelta to buy tokens, and instead of buying them, my order failed (Probably because someone has bought it right before me), so my transaction for buying it has failed, and still I was charged. It's debugged contract, why would I use testnet?

python is one of the most efficient programming languages. Why the fuck would you shit on someone just because they don't write functional languages?

Can we have one discussion without ad hominem attacks?

Read this, stumbled upon it by that other HN thread and it pretty much confirms my points: news.ycombinator.com/item?id=14691212

>no garbage collection
most application logic should be done in a higher level language with calls to solidity, right? smart contract languages should be low level and simple as possible.
>each line of code costs gas, instead of actual computational power used
do you have a better way to calculate power used?
>integer overflows
like C and C++? it's low level.

your entire post screams java kiddie

So what do you propose the use for decentralized computing on the EVM is? Just for keeping track of tokens?

are you implying nothing of consequences can be built with it?

is there something insecure about writing a program in another language and only doing the money stuff in solidity?

I can't think of any platform or product where you want "only the money stuff" on a public blockchain.

do you have brain damage? try to articulate your point more clearly.

>python is one of the most efficient programming languages.

Please be a troll

Yep.
Decentralized computation at a huge scale wasn't ever meant at this stage, that's why scalability is such a big deal to the foundation. Smart contracts don't necessarily even need to run at such a high level. AION, for example, is creating a cross-chain solution that will allow ethereum smart contracts to run efficiently as a basic logical unit in conjunction with other chains. Entire networks become kernel-ized.

>beyond me

nigger let me give you a rare and valuable advice. you are the modern day bricklayer, maybe even the modern day architect if you are not merely the pajeet. respect kiddo. but consider will your pillow waifu be more impressed by. katy perry et al, or the jew that built the stadium she performed in?

lol are you serious?

The most efficient language is smalltalk, boyo. python isn't even in the top 20 most efficient languages

(Platforms like RLC will handle actual computational overhead for your faggot-ass bloated dapps, so get the fuck out with your double nigger assertions about system architecture).

All true, but there are no real smart contract platform alternatives to Ethereum. Everything is either vaporwave or not decentralized.

roll

It's an architectural implementation, if there was something easily deployable (and interoperable) they could rebase it. Creating a vm is pretty fucking time consuming.

roll

ROLLIN

So which is the best language to use in the future?
I'm thinking Go
Which blockchain platform supports this?
roll

Elixir is the obvious choice to me.
>tfw nine nines

rolll

rollin

yikes

>can't have maps in memory, only in storage Because there is no memory to store it in. Its not a normal computer, its a blockchain. There is no distinction between RAM and HDD because everything must be stored there in order for contracts to be validated

roll

I don't give a shit what I roll, Mandy Flores is mine.

op = broke dev with no completed projects that talkshit programming language he's barely used LOL

wrong faggot, we're sharing.

Now you know the reason behind x billions of stolen/hacked/frozen ETH
A shit tier language, a shit tier implementation

>stolen
wrong
>hacked
wrong
>frozen
correct.

retard
/t.

incredible that there are people on this board that still believe technology matters... the fucking pajeets are literally years ahead of these self proclaimed absolute mothbreathing faggots.

"software engineers" like op are precisely why a 19 years old kid launched a multibillion dollar network on shaky code
most of you are drones too busy wanking over syntax to actually innovate
passively aggressively whining about what others do has never built anything, and your superiority complexes are unwarranted

what are you holding

Exactly this. I do SE myself, but I can't stand the loser mentality anymore. "Muh language, muh tools, my code quality", even though they have 0 users and unhappy customers. Sure, hacking away some shitty untested code is a bad practice, but spending months (think of costs) to deliver zero value is ridiculous.

Anyways, I checked Solidity myself. I was surprised how simple it is to make your own coin and use it for some simple use cases. I was expecting it to be more technically challenging... No wonder we have ICOs daily.

lambos and shit

I won't share a woman even if she is an old whore, get near my Mandy and I'll use some of these crypto gains to make you regret it.

rollo

based

How is Bitcoin's code?

Rolling for milf.

>most of you are drones
underrated
I can't think of more than a handful of programmers in my 20 years in the industry that aren't

Tell me about it, I'm ready to kill myself from anxiety everytime I deploy a smart contract to mainnet.

btw did you know that block.blockhash(n) returns 0 if n is more than 256 blocks back? That's how people broke the bank of the ethereum lottery

Haven't done much in sol but here's my thoughts

>>integer overflows are a thing
Extremely awful. It's like they want catastrophic vulnerabilities to happen routinely.
>>array indexes wrong way around
non-problem
>>can't have maps in memory, only in storage
Are you supposed to implement your own maps with arrays if you want this or what?
>>each line of code costs gas, instead of actual computational power used
This is dumb but maybe the language does a good enough job limiting the amount of instructions one line can require
>>no garbage collection
Really?
>>byte is actually 256 bits
uhuuuuh, what
>>no floating points, has to be done by hand
just kek

checked but you didn't roll mandy kiddo. your gains don't scare me at all.
i am literally accumulating scientists to biologically alter my sac to produce full blown fucking autists, she'll convince you they're yours. enjoy your life.

>>byte is actually 256 bits
> uhuuuuh, what

Yes, to "simplify" things the EVM works only with 256 bit unsigned integers so something that should be one instruction (adding two bytes) in assembly is now like 100+.

>>no floating points, has to be done by hand
> just kek

The reason they give for this is that "nobody should handle money using floating point arithmetic", even though not everything being done on the EVM is using money.

Also the EVM is stack machine designed in 2015 about 10 years after people realized that register based virtual machines were far superior.

Also the creator of Solidity and the EVM Gavin Wood wrote a multisig wallet that got hacked and lost people >150 000 ether

blog.zeppelin.solutions/on-the-parity-wallet-multisig-hack-405a8c12e8f7

ETH and solidity both are insecure by design
only tech illiterate support this monstrosity

Yeah, roll

Another thing to notice about Ethereum is the addresses, they are just hex encoded 160 bit numbers WITHOUT checksums, this makes it extremely easy to send your ethereum to the wrong address and burning them forever.

What about Bitcoin's protocol?

Rollerino

>accumulating scientists
lmao this is the best Veeky Forums by far

>Yes, to "simplify" things the EVM works only with 256 bit unsigned integers so something that should be one instruction (adding two bytes) in assembly is now like 100+.
>The reason they give for this is that "nobody should handle money using floating point arithmetic", even though not everything being done on the EVM is using money.
Yep, I'm sure there was rationale behind both of these things but still they're clearly very questionable choices like a lot of people seem to acknowledge. Dismissing established CS and field practices isn't the best thing to do when you're designing a critical piece of software like this


>Also the EVM is stack machine designed in 2015 about 10 years after people realized that register based virtual machines were far superior.
Again: really? I've never taken a serious look at the Ethereum repo but this thread sparked my curiosity

larpers? C does not suffer from being incomplete at all

if any of you doubt that developing around ethereum isn't a nightmare go look at the python libraries. No seriously, go try to decode messages with python.
that mariamwhatever guy maintaining the python stuff is doing about as bad of a job as I can imagine anyone, even myself doing which is pretty bad considering that I don't give a flying fuck about ethereum.

Your not wrong there.

As if blockchain technology, in general, is worth anything. 10 years+ old and still no real use cases

Yo how bout checking other smart contract platforms though. Thoughts on NEO, ARK, QTUM, and STRATIS?

Tezos will soon wipe the floor with Eth. It was a kiddie shit Proof of Concept

itt: FUDing weakhanded faggots on shit that was solved 3 years ago

Casper is running webassembly (which was supposed to be eos thunder)

ethereum network isn't limited to one language

Aww, cute. You think that's all of it?

All state is mutable by default (this includes struct fields, array elements, and locals). Functions can mutate state by default. Both are overridable by explicit specifiers, much like C++ "const", but you have to remember to do so. Even then, the current implementation doesn't enforce this for functions.

Integers are fixed-size and wrap around, so it's possible to have overflow and underflow bugs. Granted, with 256 bits of precision by default that's harder to do than usual... but still pretty easy if you e.g. do arithmetic on two inputs.

Operators have different semantics depending on whether the operands are literals or not. For example, 1/2 is 0.5, but x/y for x==1 and y==2 is 0. Precision of the operation is also determined in this manner - literals are arbitrary-precision, other values are constrained by their types.

Copy is by reference or by value depending on where the operands are stored. This is implicit - the operation looks exactly the same in code, so unless you look at declarations, you don't know what it actually does. Because mutability is pervasive, this can can have far-reaching effects.

Map data type doesn't throw on non-existing keys, it just returns the default value.

The language has suffixes for literals to denote various units (e.g. "10 seconds" or "1000 ether"). This is purely syntactic sugar, however, and is not reflected in the type system in any way, so "10 second + 1000 ether" is valid code.

Statements allow, but do not require, braces around bodies. This means that dangling "else" is potentially an issue, as is anything else from the same class of bugs (such as the infamous Apple "goto fail" bug).

Functions can be called recursively with no special effort, but the stack size is rather limited, and it looks like there are no tail calls. So there's the whole class of bugs where recursion depth is defined by contract inputs.

Order of evaluation is not defined for expressions. This in a language that has value-returning mutating operators like ++!

Scoping rules are inherited from JS, meaning that you can declare variables inside blocks, but their scope is always the enclosing function. This is more of an annoyance than a real problem, because they don't have closures, which is where JS makes it very easy to shoot yourself in the foot with this approach to scoping.


I never understood why they chose such a hacky language (an a VM model that encourages these kinds of languages), and expect people to write supposedly secure (in the sense of: obviously correct!) code with it.

Any remotely popular functional programming language created over the last years shows a better design (and taste) than this one.

You think you're smarter than Vitalik and everyone else on his team?

I don't think you understand. Solidity can differentiate between memory and storage. Memory is a temporary storage, while storage is permanent.

>Go
>future
come on