10 ms·
>The advantage is that [learning Rust] automatically filters, uh…, script kiddies >So if you want to hire someone to write Rust for you, it’s pretty safe. I'
by seumars 5y ago
>The advantage is that [learning Rust] automatically filters, uh…, script kiddies
>So if you want to hire someone to write Rust for you, it’s pretty safe.
I'd be really sceptical of hiring someone who refers to other developers as "script kiddies". Rust has been getting a lot (well deserved) attention but I hope people aren't learning Rust as a status symbol.
- capableweb 5y ago> but I hope people aren't learning Rust as a status symbol. Of course they do. Lots of learning today seems to be based around "what looks nice to put on my resume?" which is effectively a status symbol, rather than choosing tooling that is actually the best for the job. Same applies for a ton of stuff as well, not just Rust.
- dboreham 5y ago"Resume-driven development"
- seumars 5y agoWeb development > personal development
- capableweb 5y agoNo, that's something else. Choosing languages in order to look better on the resume is not personal development, it is resume-driven development. Learning new languages in order to become a better programmer overall is personal development, or learning languages that fits better with "you as a person". But chasing hype is not "personal development" and that meme needs to die.
- moritzwarhier 5y agoSad and true. The other side of the equation is people being forced to work under abysmal constraints, because of technical choices made years or even decades ago. That being said, "Rust on the frontend" sounds pretty ridiculous to me. I'm sorry for not having read the article before commenting.
- nine_k 5y agoNot more ridiculous than C++ on the frontend — which is typical if the frontend is a native GUI.
- moritzwarhier 5y agoCorrect, I was failing to take off my web dev hat
- smoldesu 5y agoFrom what I've seen, most frontend Rust development is focusing on replacing C/C++/C# frontends, not necessarily for websites or even really desktop applications. With that being said, I have written a few GTK+ applets in Rust, and I gotta say that it's not as bad as it sounds or looks. The current GTK crate supports Glade, meaning that you don't have to actually write your frontend in Rust, rather building it in a different program, exporting it as glorified XML and binding the intractables to different buttons and fields. A hello world-styled GTK demo is only a few lines, and of course you get a wickedly performant binary out of the process too (mine used 4mb of memory, which could have been further optimized).
- moritzwarhier 5y agoThanks for the informative reply!
- capableweb 5y agoAs someone with limited experience, how do you deal with animations and such in GTK/Glade? Took a look at the Glade website (https://glade.gnome.org/ https://glade.gnome.org/) and doesn't seem mentioned. In fact, I cannot even find a list of supported features.
- estebank 5y ago(Disclaimer: I have no idea what I'm talking about) I wouldn't be surprised if you could/had to do something similar to this sprite handling example[1], where instead of updating the sprite's location you update widgets' attributes. This would be a "manual" process, but it should work (if repainting widgets is fast enough). [1]: https://github.com/steshaw/gtk-examples/blob/master/ch13.sprites.animation/defender/animate.c#L304 https://github.com/steshaw/gtk-examples/blob/master/ch13.spr...
- herval 5y agoI saw this same attitude on a Haskell shop - "we write UIs in Haskell to prevent hiring script kiddies". Turns out Haskell coders with 20y of experience on completely non-visual workloads are terrible at UI/UX, to the point of dismissing the work of building the UI as "a lesser concern".
- jokethrowaway 5y agoThat's orthogonal to the discussion. You would anyway need UX designers for that, the issue is leaving that to the developers. I do my own design sometimes but when I implement a well designed design by a real designer the end result is years light ahead
- hitekker 5y agoDevelopers sneering at other developers is relevant to a discussion about gatekeeping.
- yumraj 5y agoPerhaps. But let’s say you have two resumes in front of you. One person has only worked in interpreted languages and the other has worked in interpreted languages as well as in C, C++, Go, Rust.. Both of them clear your technical interview. Which candidate will you pick?
- lampe3 5y agoI would say that's not enough information... And getting a candidate because of that one metric would be insane..
- ducharmdev 5y agoNot enough information. It largely depends on the product, the team, and even soft skills or domain knowledge. In some contexts, yes having knowledge of compiled or non-GC languages is critical. But there is a certain baseline of programming knowledge that allows any dev to be decently productive; for many products & teams, soft skills become more important after that point. For example: if the interpreted lang dev is great at communicating and the compiled dev is terrible, some teams may elect to choose the first for that reason alone.
- dave_sid 5y ago> I hope people aren't learning Rust as a status symbol There was another reason for its existence??
- ducharmdev 5y agoYou could also argue that it puts you at risk of hiring someone from the other end of the spectrum: a knowledgeable senior dev that is more interested in writing over-engineered solutions for the fun of it, rather than matching the solution to the problem. Rust is great and shows a lot of promise, but I think you need to have some strong arguments when using a lower-level systems language outside of a systems-focused context. Not saying it can't/shouldn't be done, but it's worrying to me when people stop thinking critically because of the hype.
- lampe3 5y agoI also think the logic is flawed. Usually I see comments like this from people who think "Frontend is easy, backend is hard" and then you look at the frontend code and you scream in pain. Its not like you can not write bad code in Rust. Rust has for example 6 String types. You can also write unsafe rust code. There were example in the past were major Lib's did it just to make it faster. Also the rust frontend eco system has a very low maturity. So you probably will be writing a lot of stuff on your own (what script kiddies do because they think they can do it better). If for you it is important to have someone which is not a script kiddie then you could also go for someone who understands RxJS and Angular. This would also "filter". I'm not sure how many people you will find with good rust skills and good UI/UX skills. If this is not important then go for it.
- iudqnolq 5y agoSix? I can think of String (owned bag of utf-8 bytes), &str (reference to utf-8 bytes), and OsString (potentially non utf-8 depending on your platform, used for ffi). Some people say Cow<str> is a string type, but I think it's better thought of as a genetic type you often use with strings.
- steveklabnik 5y agoPeople say "Rust has six string types" but what they mean is "the standard library has six string types". Rust-the-language has one string type: str. The standard library also has: * String * OsString / OsStr * CString / CStr if people really want to make it look big, they also include PathBuf/Path and Cow<str>.
- deleted 5y ago[deleted]
- iudqnolq 5y agoThanks! I'm definitely often guilty of conflating the stdblib and the language. I prefer to think of it as programers have used strings to represent too many non-string things in the past. It's nice to look at a function sig and see Path/camino::Utf8Path/bytestr::ByteStr and see what they actually plan on doing with it.
- choeger 5y agoExactly. Everyone knows that you need at least Haskell to filter out these pesky fashion victims. /S
- temuze 5y agoReminds me of http://www.paulgraham.com/pypar.html http://www.paulgraham.com/pypar.html
- smoldesu 5y agoIt's more about how strongly typed the language itself is. Rust isn't necessarily harder to learn than a scripting language, but a lot of it's syntax is dependent on how well you understand programming fundamentals. For example, you can't just spin up an integer at will in Rust: you need to specify how many bits you're using, and manually sign or unsign each value to manipulate it accordingly. That's the stuff that will filter out JS writers and Python devotees. It's not really an insult so much as it is commentary about the language. The focus on zero cost abstraction and correctness at compilation means that it's harder for a Rust dev to write a slow program than it is for a Python or Java dev. Again, not necessarily because of any fundamental issues with the other two languages, but rather that Rust is a pickier language.
- rcfox 5y ago> For example, you can't just spin up an integer at will in Rust: you need to specify how many bits you're using, and manually sign or unsign each value to manipulate it accordingly. let x = 5;
- smoldesu 5y agoI mean, you can do this, but it will still get automatically typed as a u8, which could very easily cause confusion for Python devs who really want to push that value past 255. My bigger point (and likely the authors) was that Rusts integers aren't like Java's ints or Python's bigints. Your laziness in that example is still being penalized, it's just harder to see and therefore, less "correct".
- tux3 5y agoFYI the default is i32, not u8.
- deleted 5y ago[deleted]
- Thaxll 5y ago
- dralley 5y agoAlso, it's an attitude completely antithetical to that which the Rust community tries to cultivate. Literally, the very first sentence on rust-lang.org is "A language empowering everyone to build reliable and efficient software." Making "real" a systems programming language that is more accessible is one of the primary goals of the language. And a large portion of the Rust community are converts from scripting languages like Python / Ruby / NodeJS, and the tooling is inspired by (good parts of) the tooling that sprang up in those communities. If you want to think that way about "script kiddies" then that is your right, but keep it to yourself.
- detaro 5y agoThe Rust community really has a problem with some of its fans and zealots there (far from the only programming language community to do so of course, but I can't remember seeing arguments that users of the wrong language should be tried in Den Haag in other places...).
- pyentropy 5y agoThe wording may be harsh, but the idea is roughly correct. Learning Rust and fighting the borrow checker requires CS fundamentals knowledge. However, that doesn't mean the person can write concise code or have good soft skills, or be a good hire.
- Sawamara 5y agoI'll be a bit raw, sorry for it. There is a battlefield in the JS ecosystem. Anyone seasoned in it, with all that entails, is not your "script kiddie" as that word originated in a VERY different era, with very different requirements for said "script kiddies". If anything, it shows that the one using this phrase is a bit out of the loop.
- habitue 5y ago(author here) I probably should have mentioned it more prominently in the post, but Martin's first language isn't English (he's Czech). So not out of the loop, but the exact connotation of the phrase is something I personally cut him slack on
- echelon 5y agoOnce Rust breaks into the top 10, there will be plenty of people writing lazy rust and sprinkling `unsafe` throughout their code. This whole argument is exclusionary and divisive.
- pyentropy 5y agoRust is a language whose selling point is safety so I don't see unsafe code appearing often no matter its popularity. I do agree that it is divisive, but sometimes it also feels like humbleness of research programming languages (esp. Haskell) designers is a bit faked, which can have the opposite effect and scare beginners. The most popular languages, who beginners love, tend to have a history of being designed to be practical, not well designed or researched. I have a tiny bit of Rust experience, and honestly if someone taught me Rust as a first programming language, I'd get so frustrated and insecure. Don't get me wrong, it's a beautiful language and the online book is great -- but it has a great barrier to entry and most people would get frustrated. Meanwhile, people following JS tutorials will already feel dopamine hit from getting their own programs running on screen and will be motivated to continue their journey.
- habitue 5y ago(author of post here) I didn't get the impression from speaking with Martin that he was trying to gatekeep. He's spent a lot of time on github and in discord helping people learn Seed and MoonZoon. In the context of hiring, I think the signal he's talking about is the same for any minority language like Haskell or Elixir. If you're spending nights and weekends hacking in a language that's not widely used in industry, it's an enthusiasm signal. This was true for Python about a decade ago, even though it's an easy language to learn. If you hired python developers, it was a signal that you'd be getting passionate enthusiastic developers. As Rust becomes more adopted and hiring goes up, I think the value of that signal will go down. Rust certainly has complexity, but I don't think they're insurmountable barriers for any significant class of developers.
- slibhb 5y agoOn the other hand, it might send potentially negative signals. Someone who "hacks" on a less-used language might have a programming language fetish, i.e. "why would you ever use Java...Rust is better in every way". And yes, I've met a few of those.
- jollybean 5y agoRust should not be a status symbol, but as someone very wary of Rust-hype myself, I'm very wary of the number of 1/2 developers out there. There are people who pick up a few lines of JS, a few lines of Python and are technically 'developers'. There are others with much stronger fundamentals. PG was big on using arcane languages as a form of natural selection, Rust may be nice for that, in the sense that I think anyone who can approach rust and make an app with it, probably fits in the 'developer' camp at least on some level. I like it because when looking for C++ people, I also want people who have enough self-awareness, and Rust makes you think about things in a different way, and at least contemplate some of the bad habits that exist in C++.
- reader_mode 5y agoNot just that - using complicated solutions in situations they offer few benefits and a lot of downsides to establish tech is a massive red flag for me. The worst project I've ever worked on was a C# project where some random mid-level dev thought he was smarter than anyone for learning functional programming. He wrote his own Monad framework that abused LINQ syntax for composition, everything was littered with this bastardised Maybe implementation, he used delegates all over the place - including dependency injection containers, etc. By the time I came on the project it was years into development and the original guy left years ago. It was the worst mess you ever saw - months long onboarding, unreadable code, stack traces full of useless shit, impossible to lookup where specific dependencies were coming from in the project. A very technical but immature developer is much worse than a below average dev.