5 ms·
> Perl is as hard for novices to learn as a language with a randomly-designed syntax Make something accessible to novices IMHO is a wrong goal in many cases. A
by citrin_ru 5y ago
> Perl is as hard for novices to learn as a language with a randomly-designed syntax
Make something accessible to novices IMHO is a wrong goal in many cases. A tool like a programming language used day to day for many months or years. What important is how efficiently you can use it after spending enough time to learn it (I would say a month or two should be enough for most languages if you know already a few, but it depends).
Of course we cannot ignore how hard is to learn a language otherwise we will have languages like C++ which require years to master it (and even coders with years of experience fall pray to numerous hidden traps of the language).
- bakuninsbart 5y agoAn interesting research question would be if the things that make it harder for a novice to understand code are exactly the same things that make experts more productive. Curly braces was used as an example in the talk, and for me at least they are very useful to understand code structure. I still remember that one of the hardest things for me to get started with in Java was the seemingly endless types. There was a general overload with phrases I had never seen before coming from Python. While I am not too strongly opinionated on static vs. dynamic typing today, static typing is very popular among expert programmers.
- oriolid 5y agoThe best explanation for Java language design I have heard that it's not designed to be productive but to prevent mediocre developers from shooting themselves in the foot.
- xen0 5y agoAnd yet, the Enterprise Java meme.
- oriolid 5y agoDid you mean AbstractCorporationCategoryLanguageMemeFactory? Anyway, at the time Enterprise Java was developed, it was commonly believed that the best way to do large scale development is to hire busload of outsourced workers and give them tools that don't let them do too much damage. If you let them have C++, you'd end up with Series 60.
- bsenftner 5y agoAfter the "toy" languages of Basic and Pascal, my first real programming language was PDP11 Macro-11 Assembly. At the end of that programming class, the final assignment combined all the prior assignments and to the entire class's surprise we had a C compiler. From that laying a foundation experience, I felt extremely comfortable when learning and working in C for a good 20 years after graduation. C++ appeared first as a pre-processor for C, and then took over as the primary compiled language with C treated as a less favored step child. Over the years, my experience has been those that tried to embrace the entire language shot themselves in the feet over and over again: template programming has always been unstable and difficult, operator overloading is a recipe for mistakes, and complex object hierarchies over designed to a fault. Nobody appears to follow the Keep It Simple Stupid (KISS) principal anymore. If there's complexity, it should be innate to the product, and not reflected by how to product is constructed internally. The portion of the talk where it is discussed how many parameters and features of software are never used hit my experience the sharpest. Keep Is Simple!!!
- mikewarot 5y ago>the "toy" languages of Basic and Pascal What makes Pascal a toy language?
- bsenftner 5y agoToo many guards and training wheel preventions? Lack of adherence to a loose standard causing incompatible language variations from different vendors? Pascal editors often enforced a code layout style, with different editors enforcing different styles? No serious work done in pascal?
- Zababa 5y agoI think that's a false dichotomy in many cases. For example, compiler errors. Elm and Rust have really good errors, and that benefits everyone. Once that part is done, I agree with you. I also think you may overestimate the depth of knowledge that the average programmer has about his most used programming language. Languages evolve a lot, sometimes faster than how you used them. People also don't use the same programming language during all their life.
- sidpatil 5y agoI agree. This is something I tried to explain to others in my last job, with little success. A person using a language long-term is only a novice for so long. After they've figured out the basics and become comfortable solving problems, they become interested in efficiency. Designing a language to cater to novices is like designing a bicycle with only low gears—it's easy to get started, but increasingly difficult to move fast. I.e. the Turing tarpit [1]. I'm biased, and admittedly don't have a lot of perspective on this topic, but I have seen the effects of poorly-designed languages on the application development process and its output. [1] https://en.wikipedia.org/wiki/Turing_tarpit https://en.wikipedia.org/wiki/Turing_tarpit
- netvarun 5y agoI agree and well articulated! Your comment reminds me of the quote, “Everything should be made as simple as possible, but no simpler.” (Einstein??)
- bmn__ 5y ago> > Perl is as hard for novices to learn as a language with a randomly-designed syntax Stefik is a hack fraud, and he claimed another victim with Wilson. HN readers, beware. https://www.nu42.com/2013/11/are-perl-users-unable-to-write-programs.html https://www.nu42.com/2013/11/are-perl-users-unable-to-write-... http://redd.it/39buec http://redd.it/39buec http://redd.it/38i1pr http://redd.it/38i1pr