This is a weekly roundup of awesome DEV comments that you may have missed. You are welcome and encouraged to boost posts and comments yourself using the #bestofdev tag.
If my search history is any indication, zero.
@kenbellows follows up later in the thread with three "themes" across different programming languages:
I agree with you in general that understanding a single language at a very deep level will let you easily pick up many, many others, but I don't think one is enough to cover everything, because I think there are a few different fundamental threads in programming languages that different enough that being deeply familiar with one will not prepare you for the others.
I'd probably argue that there are three major threads:
declarative languages — Languages in which you don't really give the computer a list of instructions, but instead you describe the problem for the computer to solve, or sometimes the outcome you desire, and let the machine fill in the blanks. This is a rare breed of language and is often found as an ability of languages that otherwise fall under one of the two above categories, though explicitly declaritive languages do exist. My main exposure to this paradigm is through Prolog, a Turing-complete logic-based language in which you feed the system a set of facts and relationships then ask it questions. Constraint programming, in which you hand the system a set of rules or conditions that must be followed in solving a problem then let the system work out a satisfactory solution, would fall under this label as well, and Oz seems to be a popular language choice, though I haven't used it.
Of course, as I alluded to above, many (most?) languages fall at least somewhat into more than one of these categories, and they are probably better thought of as "paradigms" or "approaches" of programming rather than "types of language". What I'm really trying to get at is that I think it's super valuable to pick a language or two from each of these different categories or paradigms and spend some free time digging in deeply and really wrapping your head around each of these very different perspectives.
I took a course during college called "Programming Languages" in which we had three big programming projects: one in Java, one in Racket (a flavor of Lisp), and one in Prolog. This was, in my opinion, one of the most valuable courses I ever took, and probably one of the most valuable coding-related experiences I've ever had, because it forced me to really lean into these three different perspectives and actually use them enough to make something substantial. It showed me how much variety there can be in how we talk to computers.
I highly recommend this as a personal project for anyone who wants to broaden their mind. First, go through a tutorial for some flavor of Lisp (Racket is a nice introductory one, though everyone has their fav) and write something non-trivial, like a Tic-Tac-Toe player or something. Next, go through a tutorial for Prolog and write something else non-trivial, like a simple chatbot based on Markov chains or something. It's a wild ride.
Microsoft Excel. Seriously.
- The only database that the average person can use without training
- Handles gigantic data volumes with extreme efficiency
- Does everything. Like, I regularly discover new features, and no matter how obscure they are, they always work perfectly
- Does massively complex calculations without a hitch
- A non-negotiable dependency of almost every industry and profession
- Dependable and consistent in a way that 99% of software cannot hope to achieve
- Completely scriptable
@thatonejakeb adds their suggestion to What's the best thing to do when you've run into a debugging dead end?:
Turn off the computer and go for a walk.
<3 <3 <3
I LOVE the datalist tag and appreciate anyone who helps evangelize it! It can also be combined with
autocomplete='off' on the element that its used with so that you don't get annoying values in there. For instance if you have a list of employees and the type of the input is set to email, you wouldn't want all of your emails that you use to be autocompleted.
Also you can add stuff into option for better autocomplete.
<datalist id='emails'> <option email@example.com'>Arty Adams</option> <option firstname.lastname@example.org'>Bobby Boi</option> <option email@example.com'>Cathy Chatty</option> <option firstname.lastname@example.org'>Dorthy Doraimon</option> <option email@example.com'>Esther Enemy</option> <option firstname.lastname@example.org'>Freddy Fishmonger</option> <option email@example.com'>Genna General</option> <option firstname.lastname@example.org'>Holly Hollandaise</option> <option email@example.com'>Ingrid Ingot</option> <option firstname.lastname@example.org'>Julia Jumper</option> </datalist> <label>Autocomplete Email(Scroll down in drop down to see your values): <input type='email' list='emails' name='email'/> </label> <br> <label>Autocomplete Off Email: <input type='email' list='emails' name='email' autocomplete='off'/> </label>
with this searching names, or email will work. Even partials like 'ty@examp' will work and only bring up Arty.
The above example can be seen in this fiddle: jsfiddle.net/t2qb90vu/
See you next week for more great comments ✌