Post 9lsOFMuK64MhtUAbWy by jorge_jbs@mastodon.cloud
(DIR) More posts by jorge_jbs@mastodon.cloud
(DIR) Post #9lpz5ol8HmkP5ZaBsG by sir@cmpwn.com
2019-08-13T08:15:19Z
4 likes, 3 repeats
As the old saying goes, "There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies."Rust is a crutch which is enabling the proliferation of awful software from the latter camp under the guise of a moral imperative for "more secure" software
(DIR) Post #9lpzQ34InJBbGACCqu by sir@cmpwn.com
2019-08-13T08:17:46Z
7 likes, 7 repeats
Good software engineers write simple software with simple tools, and it works. Bad software engineers write complicated software with complicated tools and it only works insofar as you run it on CPUs designed in the last 6 months on one of 2-3 operating systems on 1-2 architectures and provided you don't look at it too funny
(DIR) Post #9lq4fkHysnSHQ8tlAG by ignaloidas@mastodon.gamedev.place
2019-08-13T09:17:54Z
0 likes, 0 repeats
@sir whether we want it or not, majority of software is written by "bad engineers", and people depend on it. It's better if the tools used to make it work with less hiccups, even if it constrains the environments where it can work.
(DIR) Post #9lq5StdcuaFAbdSZQu by sir@cmpwn.com
2019-08-13T09:26:19Z
1 likes, 0 repeats
@ignaloidas I think bad engineers can be made into good engineers
(DIR) Post #9lq5wrfen3rJByhQYK by ignaloidas@mastodon.gamedev.place
2019-08-13T09:30:54Z
0 likes, 0 repeats
@sir I disagree. Not everyone who develops software is a professional engineer, and most of the time have no incentive(or even unable) to become a "good engineer". Take for example data science. They do use programming, they create utilities for self and others, but they do not gain anything from becoming a "good engineer". For them using tools that decrease the amount of thinking they have to do for a piece of code, while also adding security guarantees, is an obvious choice.
(DIR) Post #9lq6YjOpzVXsXkt9Jw by sir@cmpwn.com
2019-08-13T09:39:08Z
0 likes, 0 repeats
@ignaloidas Given a simple and well defined environment, bad engineers can write good code. Case in point: Golang. And I pray to any god who will listen that academics will not be building the operating systems of the future.
(DIR) Post #9lqEWe93M7ZPIi1Rku by deezthugs@liberdon.com
2019-08-13T11:08:01Z
0 likes, 0 repeats
@sir is that really an old saying or something you just made up? Also it is not accurate. There are 1000 ways to make software.
(DIR) Post #9lqEhuFvnPoMSAbnNo by sir@cmpwn.com
2019-08-13T11:10:20Z
0 likes, 0 repeats
@deezthugs quote from Tony Hoare's 1980 Turing Award lecture, which I would assume is a damn sight better credentials than either your or I have both
(DIR) Post #9lqEoHzITVnlnFs6Qy by deezthugs@liberdon.com
2019-08-13T11:10:42Z
0 likes, 0 repeats
@sir still not true tho
(DIR) Post #9lqEuESQVrlIaAKYvg by sir@cmpwn.com
2019-08-13T11:11:52Z
0 likes, 0 repeats
@deezthugs oh shut up, then, mister smarter-than-turing-award-winners
(DIR) Post #9lqF5iWH5Dtj0HbgmG by deezthugs@liberdon.com
2019-08-13T11:13:00Z
0 likes, 0 repeats
@sir not an argument :)
(DIR) Post #9lqGKD6kFmgTsb8lyi by ignaloidas@mastodon.gamedev.place
2019-08-13T11:28:20Z
0 likes, 0 repeats
@sir Golang isn't that different from Rust though. They both provide a safe environment, but with different tools. Rust gives more varied tools for lower level programming, while Golang gives you simple general tools for general programming. In turn it is easier to write good general code in Golang, and good low level code in Rust.
(DIR) Post #9lqGQjErhjEHGm2xiy by sir@cmpwn.com
2019-08-13T11:29:13Z
0 likes, 0 repeats
@ignaloidas Golang and Rust are similar insofar as they're both programming languages. In every other respect they are starkly different and I find your statement disingenuous and outlandish
(DIR) Post #9lqIvzQjkqKIN7dMeW by ignaloidas@mastodon.gamedev.place
2019-08-13T11:57:41Z
0 likes, 0 repeats
@sir I don't see a huge difference between them in sense we are talking. They are both memory safe languages. They both are statically typed. The only real difference I can see between them are the tools provided. Go has very barebone tools suited for general development. Rust has a lot more tools that are more suited for lower level programming and abstraction. Between the languages themselves I don't see much difference, I only see the difference in tools provided with them.
(DIR) Post #9lqLBcG5sEeP32EbSK by sir@cmpwn.com
2019-08-13T12:22:59Z
1 likes, 0 repeats
@ignaloidas they are fundamentally different in goals, design, implementation, and usage, in almost every respect. Yes, if you bucket them into broad, opaque categorizations like "statically typed", they have a similar shape. An orange has a similar shape to a basketball, too.
(DIR) Post #9lqLrOgYjEkl78XJI0 by thatbrickster@aria.company
2019-08-13T12:31:11.303171Z
1 likes, 1 repeats
@sir help me i have written past production tools in rust
(DIR) Post #9lqQxR0ZVNAnpIaxoO by mprymek@nerdica.net
2019-08-13T13:27:17Z
0 likes, 0 repeats
@sir @ignaloidas Unexperienced developer can do very harmful mistakes in Go just by overlooking some corner cases. The compiler does not help even when it could.E.g. non-exhausting case switch or unintentionally shared state between goroutines. These bugs can live unnoticed for a long time and be very harmful.
(DIR) Post #9lqSBtOYrMmtsKH3HU by petit@social.ufeff.club
2019-08-13T13:42:06.688777Z
0 likes, 0 repeats
@sir @ignaloidas For example, Go programmers have a nil, which Tony Hoare called a billion dollar mistake[0], and Rust avoided that mistake, right? It looks like there's a billion dollar difference between the two! At least![0] https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare/
(DIR) Post #9lqTyK3N9FCqPO1JM8 by wezm@decentralised.social
2019-08-13T12:48:44.167110Z
0 likes, 0 repeats
@sir :-( I have been a proponent of your work. I’m a paid up yearly supporter of Sourcehut and have recommended it to friends and other projects. I’m also a fan of Rust. I’ve tried to ignore these sorts of comments but i can not longer do so. You’ve lost a supporter.
(DIR) Post #9lqTyLBYwHLrv4rMlE by sir@cmpwn.com
2019-08-13T14:01:23Z
1 likes, 0 repeats
@wezm if you're unable to separate the tool from the person then it's your loss. Note that I have done nothing to inhibit the utility of sourcehut for rust users.
(DIR) Post #9lqUA8KiY81RX9lV1E by sir@cmpwn.com
2019-08-13T14:02:39Z
0 likes, 0 repeats
@mprymek @ignaloidas certainly. But even good developers write bad code in Rust, because idiomatic Rust code is bad code.
(DIR) Post #9lqUWY3lZyNPh6WaZs by mprymek@nerdica.net
2019-08-13T14:05:55Z
0 likes, 0 repeats
@sir @ignaloidas I don't know Rust well but this statement sound like wishful thinking / ideological view more than a reasonable argument to me, I'm sorry.
(DIR) Post #9lqUdXg1OxG4X8kkoy by sir@cmpwn.com
2019-08-13T14:08:55Z
0 likes, 0 repeats
@wezm I have a unconventional view on software design, and you'd be hard pressed to find anyone who agrees with me on everything. But these philosophies are the source of innovation and have led to the production of software that you seem to enjoy. If you were to bubble yourself in from ideas that contradict your ideology, then what're are you giving up?It's no skin off my back if you chose to end your subscription. Just my 2c on your way out.
(DIR) Post #9lqUiw1sHrCBVdXvFo by sir@cmpwn.com
2019-08-13T14:09:41Z
1 likes, 0 repeats
@mprymek @ignaloidas I've enumerated my problems with Rust countless times, I encourage you to seek out these explanations instead of expecting me to prepare an essay for each person in my notifications
(DIR) Post #9lqVH9wb3fpSVlOfdQ by mprymek@nerdica.net
2019-08-13T14:16:01Z
0 likes, 0 repeats
@sir @ignaloidas Do you have any carefully written text on any blog or anything? I have just read few toots here which I sometimes do not understand well.
(DIR) Post #9lqVOqdGk6nGvx1TEW by 361.xj9@social.sunshinegardens.org
2019-08-13T14:18:04.016409Z
1 likes, 0 repeats
@wezm @sir because he doesn't like rust? that's not petty at all..
(DIR) Post #9lqVRhdkdFLjuhbr3g by sir@cmpwn.com
2019-08-13T14:17:14Z
1 likes, 0 repeats
@mprymek @ignaloidas I do, and searching "drew devault rust" brings it up as the result on DDG
(DIR) Post #9lqVX8ToGodYbSYAqm by sir@cmpwn.com
2019-08-13T14:18:14Z
0 likes, 0 repeats
@mprymek @ignaloidas admittedly, some of the argument comes from my larger perspective on software development, which isn't as easily googled, but scanning the titles should set you on the right path: https://drewdevault.com/all.html
(DIR) Post #9lqVhurJFkLfXmgNDk by opal@pl.wowana.me
2019-08-13T14:21:30.717990Z
0 likes, 0 repeats
@ignaloidas @sir it'd be fine if people cleaned up after them before others depended on the code
(DIR) Post #9lqXW0njX93YPISeY4 by epicmorphism@satania.space
2019-08-13T14:41:46.820516Z
0 likes, 0 repeats
@sir What a good saying. Clearly, every non-trivial C program is of the second nature, because C has indecipherable semantics. But what is it about Rust?
(DIR) Post #9lqXrQ9EURjZ6Fj3nE by epicmorphism@satania.space
2019-08-13T14:45:38.992283Z
0 likes, 0 repeats
@wezm @sir why do you care about his opinion on Rust?
(DIR) Post #9lqlqq9lhhIUphasAC by nifker@mastodonten.de
2019-08-13T17:21:41Z
0 likes, 0 repeats
@sir @mprymek @ignaloidas That pretty much doesnt make any sense because it mostly doesnt add any overhead.
(DIR) Post #9lqnQBnTKxwq2TaIPw by nifker@mastodonten.de
2019-08-13T17:39:16Z
0 likes, 0 repeats
@sir If you are out for simple design why dont you write your software in Ziglang?
(DIR) Post #9lr5SBNmAIfJcxNoW0 by jorge_jbs@mastodon.cloud
2019-08-13T21:01:06Z
0 likes, 0 repeats
@sir Can you give examples of such "awful software"?
(DIR) Post #9lrFpc2sCMfSWTPuyG by sir@cmpwn.com
2019-08-13T22:56:53Z
0 likes, 0 repeats
@jorge_jbs Firefox
(DIR) Post #9lrFuQH1OR3FSeKQOe by sir@cmpwn.com
2019-08-13T22:57:30Z
0 likes, 0 repeats
@nifker I don't agree that zig is simple, or encourages the use of simple design practices
(DIR) Post #9lrLhYSEGW5GnGomA4 by nifker@mastodonten.de
2019-08-14T00:03:24Z
0 likes, 0 repeats
@sir What makes it complicated for you?
(DIR) Post #9lrNJthZodlneMqNH6 by sir@cmpwn.com
2019-08-14T00:21:39Z
0 likes, 0 repeats
@nifker I think comptime is a bad idea, among other things
(DIR) Post #9ls6avd8OZMWUVGFbU by a_breakin_glass@cybre.space
2019-08-14T08:48:46Z
0 likes, 0 repeats
@sir @mprymek @ignaloidas not as bad as idiomatic C code ;)
(DIR) Post #9lsAa6wVFZhb6RBbw8 by jorge_jbs@mastodon.cloud
2019-08-14T09:33:30Z
0 likes, 0 repeats
@sir .-. I think Firefox only has its CSS engine written in Rust. And i don't get why you say Firefox is "awful" xD
(DIR) Post #9lsAffixMQrKQKVADg by sir@cmpwn.com
2019-08-14T09:34:11Z
0 likes, 0 repeats
@jorge_jbs I might clarify by saying that any software which implements a web browser is awful by definition
(DIR) Post #9lsBJ1f5jNZZkvSWx6 by jorge_jbs@mastodon.cloud
2019-08-14T09:41:39Z
0 likes, 0 repeats
@sir that's not the language's fault xDI get you don't like Rust, but I don't think you should use such strong language if you don't argue it.
(DIR) Post #9lsBOo7qyFITVnfYUC by sir@cmpwn.com
2019-08-14T09:42:42Z
0 likes, 0 repeats
@jorge_jbs actually a lot of it is the language's fault. Rust is designed to be useful in contexts where the problem being solved is so complicated that it's a stupid idea to solve it at all (e.g. web). It encourages this web-tier crap to proliferate
(DIR) Post #9lsCABBd34Qme11Xd2 by jorge_jbs@mastodon.cloud
2019-08-14T09:51:17Z
0 likes, 0 repeats
@sir Rust is designed to have safe memory management even with concurrency. That context is very big. Could you use C in those situations? Probably, but I guess it is easier and faster to do it in Rust. And those situations that are very very complicated and writing in C would be difficult are not "bad software". I can think game engines for example.
(DIR) Post #9lsJSJHYO5IIdzO5gG by sir@cmpwn.com
2019-08-14T11:12:05Z
0 likes, 0 repeats
@jorge_jbs concurrency is generally undesirable
(DIR) Post #9lsJX6qE4MV7VWtTSS by sir@cmpwn.com
2019-08-14T11:12:30Z
0 likes, 0 repeats
@jorge_jbs also, game engines are universally terrible. And I don't say that out of ignorance, I've worked with m any
(DIR) Post #9lsJqf5ix92zEZSxsm by Wolf480pl@niu.moe
2019-08-14T11:18:02Z
0 likes, 0 repeats
@jorge_jbs >Could you use C in those situations? I think you're missing @sir 's point.The point that in such situations, you shouldn't use C. Or Rust. Or any language at all. You should refuse to solve the problem, and demand that whoever created the situation gets rid of it and decides he doesn't want the problem solved anymore.
(DIR) Post #9lsN4Fh8TPO4Nu8Z8a by jorge_jbs@mastodon.cloud
2019-08-14T11:54:04Z
0 likes, 0 repeats
@Wolf480pl @sir I'm not. As I say at the end, sometimes complicated software *is necessary*. You want to make an efficient game with complex graphics and you say "well, the software is too complicated, maybe the game is a bad idea". That sounds very dumb.I'm saying a game as an example, but I don't really know much about game development and this could be transferred to other cases.
(DIR) Post #9lsNB4r1B1dCn30vlg by Wolf480pl@niu.moe
2019-08-14T11:55:20Z
0 likes, 0 repeats
@jorge_jbs @sir "well, the software is too complicated, maybe the game is a bad idea" doesn't sound all that dumb to me.
(DIR) Post #9lsNUJh0ERToJSVHHs by Wolf480pl@niu.moe
2019-08-14T11:58:48Z
0 likes, 0 repeats
@jorge_jbs @sir Sometimes the only way to win is not to play.
(DIR) Post #9lsNu1A9kQKgNBOYOO by jorge_jbs@mastodon.cloud
2019-08-14T12:02:49Z
0 likes, 0 repeats
@sir Concurrency is generally undesirable because it is hard to get right (sometimes concurrency is bad even if it is easy to implement, I'm not talking about that). Rust makes it easier (though not easy), making the software that really needs concurrency less buggy while being more efficient.
(DIR) Post #9lsNwDMFNUoSm4687U by sir@cmpwn.com
2019-08-14T12:02:55Z
0 likes, 0 repeats
@Wolf480pl @jorge_jbs for the record, Rust is dogshit for game development. Game programmers are barely even programmers in the first place, most of them just want to make their game and code is a confusing and annoying means to their end. Does that kind of person really want to be fighting Rust?
(DIR) Post #9lsO4mx8v6pxUGRaqm by sir@cmpwn.com
2019-08-14T12:04:20Z
0 likes, 0 repeats
@jorge_jbs very little software actually needs concurrency. And I don't believe in black boxes - the complexity exists and someday you're going to be neck deep in it when it breaks. If you only understand the layer at which you're working, you're going to make bad programs.
(DIR) Post #9lsO9rwfmmd2Q1eALo by sir@cmpwn.com
2019-08-14T12:04:52Z
1 likes, 0 repeats
@jorge_jbs in fact, I struggle to think of any software which I would use threads for.
(DIR) Post #9lsOFMuK64MhtUAbWy by jorge_jbs@mastodon.cloud
2019-08-14T12:06:20Z
0 likes, 0 repeats
@sir When did I say black boxes?
(DIR) Post #9lsORAddXTxXJhzc9I by jorge_jbs@mastodon.cloud
2019-08-14T12:07:38Z
0 likes, 0 repeats
@sir Maybe because you don't typically write the kind of software that needs them, that doesn't mean they are universally useless.
(DIR) Post #9lsOVx0ZduBWUZ06zo by sir@cmpwn.com
2019-08-14T12:07:59Z
0 likes, 0 repeats
@jorge_jbs that's not what I said. Name software which needs threads
(DIR) Post #9lsOi7WYN3mMa5lIWW by jorge_jbs@mastodon.cloud
2019-08-14T12:12:29Z
0 likes, 0 repeats
@Wolf480pl @sir Engineers should let artists do their best work. It is really dumb to make software like blender and game engines less capable just because that would make them more complex. There are other nice things other than usability, like aesthetics.
(DIR) Post #9lsOp9diu4ZtAaTBEO by Wolf480pl@niu.moe
2019-08-14T12:13:46Z
0 likes, 0 repeats
@jorge_jbs @sir It's been shown that limitations increase creativity.
(DIR) Post #9lsOwWZc2DpaKB3qls by sir@cmpwn.com
2019-08-14T12:14:03Z
0 likes, 0 repeats
@jorge_jbs @Wolf480pl it would be possible to make a piece of software like blender good. I don't know enough about the blender internals to wager if they've accomplished that
(DIR) Post #9lsP6qOlBHQWhquDi4 by thatbrickster@aria.company
2019-08-14T12:17:01.441314Z
1 likes, 0 repeats
@sir I'd like to say the same thing for business software. Barely programmers. Despite my code being heavily commented the handover conclusion was that it wasn't to be used after I left and instead some slow, unmaintainable VB6 code it was substituting was to be used instead.@Wolf480pl @jorge_jbs
(DIR) Post #9lsPAfc5DnuCPnxhse by jorge_jbs@mastodon.cloud
2019-08-14T12:17:04Z
0 likes, 0 repeats
@sir Software that does something fast and wants to do it faster. Parallelization is one tecnic to make software faster.
(DIR) Post #9lsPLINfwIwlXxI0Po by sir@cmpwn.com
2019-08-14T12:18:40Z
0 likes, 0 repeats
@jorge_jbs I'm all for parallelization - in separate processes. This is easy in most languages. Threads need not apply
(DIR) Post #9lsPWPVdmBi4qBJazI by mprymek@nerdica.net
2019-08-14T12:19:57Z
0 likes, 0 repeats
@sir @jorge_jbs This is a trap :)Of course no problem "needs" threads in the sense of you can not write algorithm without threads to solve the problem (giving aside special things like hard realtime etc.).The point is, there are many problems where using concurrency leads to a better structured, understandable, cleaner (!) code.The main problem with concurrency AFAIK is that most of the programmers are not used to write separated modules which do not share state (!). So most of the problems are "how to make shared state safe". And the obvious, clean (!) solution is to NOT use shared state in the first place :)I think Erlang is a good example of language where concurrency do not lead to ugly, complicated code but the right opposite.