3 ms·
I think that it is possible to be beginner friendly, while also having higher level concepts that you can learn. I actually think this is what makes it an amazi
by christofosho 6y ago
I think that it is possible to be beginner friendly, while also having higher level concepts that you can learn. I actually think this is what makes it an amazing progressive language to learn. You can continue to learn new things about the language almost perpetually.
I understand arguments that simplicity means easier to learn, but also think that in most subjects in life we start with the basics and then break those rules to add nuance and continued expansion to the topics. See math, language, science.
- gruez 6y ago>I think that it is possible to be beginner friendly, while also having higher level concepts that you can learn. I mean, you can say that about C++. You use it like C (it's a superset of C, after all), and gradually learn the features (STL, template meta-programming, polymorphism, etc.) as you go along. But I doubt that many would say c++ is beginner friendly.
- mumblemumble 6y agoThat approach can work if you assume everyone is flying solo. As soon as you get into a team setting, though, all these advanced features become a way for more advanced users to unwittingly create a hostile environment for less skilled programmers. Which maybe isn't a big deal in the software engineering department, where you can perhaps assume that everyone is a crack programmer. It can be a huge deal, though, for a lot of non-software-engineer departments that still spend a lot of time working with code. Those teams tend to be heavily dependent on languages like Python.
- christofosho 6y agoThat logic makes sense. I am all for writing as simply as possible, and making code readable. But I understand that some may not be interested in that. I do know that some code bases tend to be more difficult to step into than others. I don't know if we can blame a language for this, or if we should be blaming the programmers. The language is a tool we can use to execute a task, but also to communicate how we are executing that task. If a developer has not written code in a way to make that obvious (or supplemented with comments), is it the fault of the language or the fault of the developer? Of course, by extension, some languages have more complicated syntax (perhaps "less intuitive" based on languages you may be used to). All said, I agree with you that some developers will indeed use higher level concepts which may not be understood immediately by lower level developers. I think this would occur even without those concepts embedded in the language itself, as the higher level developer would need create a solution to solve the problem anyway.