diff --git a/content/books/things-i-learnt/_index.md b/content/books/things-i-learnt/_index.md index 73bb354..57c1a5f 100644 --- a/content/books/things-i-learnt/_index.md +++ b/content/books/things-i-learnt/_index.md @@ -18,7 +18,7 @@ template = "section-contentless.html" * [Tests Make Better APIs](tests-apis) * [Make Tests That You Know How To Run On The Command Line](tests-in-the-command-line) * [Good Languages Come With Tests](languages-tests) - * Documentating your code + * Documenting your code * [Documentation Is A Love Letter To Your Future Self](document-it) * [The Function Documentation Is Its Contract](document-is-contract) * [If A Function Description Includes An "And", It's Wrong](document-and) @@ -28,3 +28,5 @@ template = "section-contentless.html" * [Future Thinking Is Future Trashing](future-trashing) * [Don't Use Booleans As Parameters](boolean-parameters) * [Beware of Interface Changes](interface-changes) +* Community/Teams + * [A Language Is Much More Than A Language](languages-are-more) diff --git a/content/books/things-i-learnt/interface-changes/index.md b/content/books/things-i-learnt/interface-changes/index.md index 15d762d..43bd87d 100644 --- a/content/books/things-i-learnt/interface-changes/index.md +++ b/content/books/things-i-learnt/interface-changes/index.md @@ -32,4 +32,4 @@ you can finally kill the original function. function as deprecated and _add a sleep at the start of the function_, in a way that people using the old function are forced to update.) -{{ chapters(prev_chapter_link="/books/things-i-learnt/boolean-parameters", prev_chapter_title="Don't Use Booleans As Parameters") }} +{{ chapters(prev_chapter_link="/books/things-i-learnt/boolean-parameters", prev_chapter_title="Don't Use Booleans As Parameters", next_chapter_link="/books/things-i-learnt/languages-are-more", next_chapter_title="A Language Is Much More Than A Language") }} diff --git a/content/books/things-i-learnt/languages-are-more/index.md b/content/books/things-i-learnt/languages-are-more/index.md new file mode 100644 index 0000000..9162a12 --- /dev/null +++ b/content/books/things-i-learnt/languages-are-more/index.md @@ -0,0 +1,42 @@ ++++ +title = "Things I Learnt The Hard Way - A Language Is Much More Than A Language" +date = 2019-06-24 + +[taxonomies] +tags = ["en-au", "books", "things i learnt", "languages", "community", "ecosystem"] ++++ + +Picking a programming language is much more than just picking the words that +will generate a code. They come with a community, a leadership, an ecosystem +and a thread the binds them all together. + + + +Programming languages, in essence, are simply a bunch of keywords that make +things "go". But besides those keywords, they also bring their community, the +way the leaders deal with the community, the tools created by the leaders or +community to deal with the minutiae of creating a system, the way those tools +interact with each other. + +While a language may have a simple syntax, it may be that the ones controlling +the language actually don't give two shits -- if you pardon my French -- to +the community. They focus on solving _their_ problems, not the community +problems. + +Or maybe the community has duplicate tools -- which is not a problem -- but +that developers of each tool don't talk to each other. Or worse: They simply +refuse to look what other tools are doing, which could be used to improve +their own. + +And maybe that third language is not as simple as others, but the leadership +is always discussing things with the community, being transparent on their +decision, allowing the community to discuss the future of the language and +even different groups building tools decided to merge efforts to give the +community better tools. + +That's why you can't "pick" a language by its syntax alone. That's only the +surface of what the whole of a language encapsulates and if you ignore the +other elements in it, you may find yourself with a cute language in a +community that is always fighting and never going forward. + +{{ chapters(prev_chapter_link="/books/things-i-learnt/interface-changes", prev_chapter_title="Beware of Interface Changes") }}