4 ms·
I think you are a little unfair, expecting the guide to be towards complete beginners who would get confused by the language having curly braces or not... Rust
by some_account 9y ago
I think you are a little unfair, expecting the guide to be towards complete beginners who would get confused by the language having curly braces or not...
Rust is not a first language, it's a systems programming language. For previous programmers, the guide looks pretty good to me.
- cies 9y ago> Rust is not a first language, it's a systems programming language. Since when are sys prog langs not introductory languages anymore? I understand that using an dyn typed, interpreted, GCed lang is easier to get started with; but a whole (2) generation(s) of programmers has started with systems programming as their first experience, and I must say they seem well equipped for they jobs (maybe better so than those only exposed to Python/JS/Java/C# that leave higher educations nowadays). I see it as two different educational strategies: easy first vs hard first. And even when easy first was not an option back in the days, it does not mean that hard first is a bad option nowadays. A ref to this letter by Dijkstra may be on point (where he "discusses" the move from Scheme/Haskell to Python/Java in a university curriculum). https://chrisdone.com/posts/dijkstra-haskell-java https://chrisdone.com/posts/dijkstra-haskell-java
- LandR 9y agoAt my university course, we did C in the first year for all programming courses. THen onto C++ in year 2 onwards, but all the fundamentals were in C. Now that same course goes straight to Java as the introductory language, alongside html / css and javascript. Now any sort of low(er) level language is avoid until year 2 when they do a course on C / C++ Which seems ass backwards to me. I also see some developers come into the industry now who have never done anything lower level than Java or javascript at all
- cies 9y agoI also thing that a systems programming language should be a must on for any CS degree. Just so you know how the software is written that underpins/compiles/provides-the-runtime-for what you are creating in a higher level language. It's the link between the software and the hardware that becomes truly evident in these languages.
- Retra 9y agoArguably, school curricula are driven by the industry's needs. People keep asking for Java and Javascript developers, so that's what they have students learn.
- LandR 9y agoI guess my response to that would be, if you just go straight into Java then OK, you've made some Java developers... I think they will be poor developers who happen to know Java. But if you teach them fundamentals of structuring software, compiler theory, how it all works at a lower level etc. Then teach them Java, you will have good developers, who also happen to know Java.
- stevedonovan 9y agoThanks, that's a great letter which should get more exposure. The issue is ultimately vocational vs. professional. If someone wants to do data science then Python is appropriate, but someone who is going on to do CS is going to need something more rigorous. Traditionally there are two kinds of rigour (a) systems language with explicit memory management (learning the machine model) (b) functional language like Haskell or Scheme that forces a reboot of "what does programming mean?" and makes mathematical reasoning possible. With the right curriculum and supporting materials, Rust is nicely positioned to accommodate both kinds of rigour.
- cies 9y agoI'm not saying any way is better than the other. I see advantages/disadvantages either way. I do thing we should have a broad view, especially in higher education (not simply teach the specific trick that the industry needs, but teach generic skills that work no matter what field they are applied to). While I was on the advisory board of an institution of higher education I tried to show them that "going with JS in the first year" because it is such a lingua franca is IMHO not the best choice. They did it anyway. They want the students to make flashy apps asap. I was proposing to use the SICP for the first years, mainly for two reasons: * create a leveled playing field, as some students already know JS before starting the course * learn concepts, not how-to-make-an-app (for which you have to know many techs that simply clutter the minds, like HTML and CSS) > With the right curriculum and supporting materials, Rust is nicely positioned to accommodate both kinds of rigour. Disagree. I think it does the (a) thing well, but only little of the (b) thing.
- EugeneOZ 9y agoRust could be really great first language. After learning Rust programmer will write much more safe code.