Giter VIP home page Giter VIP logo

Comments (6)

nelsonic avatar nelsonic commented on August 29, 2024 2

@LoganDark thank you for opening this issue. 🎉

It's good to get this discussion captured somewhere precisely so that people don't make the assumption that a specific setting is because of a "personal preference".

This repository is not intended as a "universal" developer setup for everyone on GitHub.
(otherwise we would have called it "The Standard Developer Setup Everyone Should Use or else!")

Perhaps we should clarify that in the README.md ... 📝

This repo is intended for two audiences:

  1. People who are learning how to code in the @dwyl online learning community (10k)
  2. People who are paid to write code for a living by dwyl.com

This can be illustrated by the following Venn Diagram: (not to scale, simply to illustrate the subset)

dwyl-community-subset-venn-diagram

i.e. this "dev-setup" guide is aimed at 0.02% of the people in the world who currently write code.

We want to encourage people in this tiny subset of the wider coding world to use "two-spaces".

Our ambition for @dwyl is to have an global online learning community 🌍
where anyone can collaboratively learn how to build useful things using code
and to that end we have written many tutorials/examples: https://github.com/dwyl/?q=learn

Most of the examples consistently use two-spaces for indentation
and indeed that is the "standard" in both the JavaScript and Elixir communities
(our two most frequently used programming languages. Furthermore Rust and Haskell our two "future" languages are both 2-space dominated, so it's unlikely we are changing soon...)
But perhaps the most compelling reasoning for using 2-space over tabs is the fact that most HTML is written with space-indentation and that is the language most people learn first.

If someone in the learning community wants to contribute an improvement to one of the learning resources, it's wise for them to configure their editor to avoid unnecessary changes in whitespace to an entire file when they are only editing/changing a single line of text/code.

But Why...?

Our medium-term goal is to build a (fully Open Source) in-browser Learning Platform ("MOOC")
that will allow people from around the world to learn how to code on any device
from a shared ("locked down") Windows XP PC at an Internet Cafe where no Apps can be installed:

internet-cafe-manilla

to a Tablet/iPad without a physical keyboard:

image

image

Hold on, where's the Tab Key ...?
Sorry, you can't write code because the on-screen keyboard doesn't have a Tab Key. 😞

Most Schools or Public Libraries where the "decision maker" or "IT person" does not want the users to install any "developer tools" should not exclude people from learning valuable Tech Skills!

image

You Sir obviously know a lot about building web-based text editors from your experience on "Nitrogen" https://github.com/allotropelabs/nitrogen ... so you understand the use-case of an Online Code Editor! 👍

BTW: nitrogen demo https://app.nitrogenedit.com was unavailable when we tried to test-drive ...
image

But many people still cannot imagine/believe there are Billions of people who don't have their own MacBook Pro 15" on which they can install their preferred Text Editor or Terminal ... 👨‍💻 😮

When our learning platform (currently in development) goes "live",
using spaces for indentation will be essential; not a "personal preference"
because in all Web Browsers, Tabs have a very different "meaning" and expected behaviour
from what they do in a Desktop-based Text Editor; pressing the Tab key while you are editing in a Browser changes cursor focus to the next form field ... i.e. it will not insert a whitespace character.

We could override the browser's default behaviour, but it would be at the expense of Accessibility ...

Further reading on Keyboard Navigation using Tabs for Accessibility:


The Tabs vs. Spaces "debate" (holy war) will continue online for as long as there are people;
if there's more than one way to do something, there will always be differing "opinions" ...

image
https://youtu.be/V7PLxL8jIl8

There is no shortage of "debate" (flame war) online as to what is "right" or "wrong" ...
Felipe Hoffa (developer advocate at Google) made a good summary of the Data:
https://medium.com/@hoffa/400-000-github-repositories-1-billion-files-14-terabytes-of-code-spaces-or-tabs-7cfe0b5dd7fd
image
Only the C and Go communities are using Tabs;
in most other programming languages there is a strong preference for spaces.

The World Voted. Two Spaces Won. 👾

To be clear: if it were up to me (Nelson) I would use Tabs and Emacs. 😮 (logically!)
But I have to make decisions that are going to affect complete beginners
for whom my two "personal preferences" aren't going to be relevant.


Respectfully, we @dwyl aren't going to change the advice we give beginners
in the @dwyl learning community who are able to define their own Text Editor Preferences,
because we want people in the community to get used to two-space
so that when the tsunami of new people learning to code comes online in the next 5 years
all our learning materials/resources are prepared for the in-browser text editing experience.

from dev-setup.

LoganDark avatar LoganDark commented on August 29, 2024 2

There was a goal of education, the CEO had this really ambitious dream of this super awesome all-in-one textbook streaming / note taking application that he never had the funding to support. Nitrogen was my personal project before I agreed to brand it as one of their products.

Nitrogen uses Monaco as its editor, it doesn't really have the best code editing capabilities, not very powerful, it was just for a class of students. It just hosted websites for the teacher to view.

Nonetheless, when I'm less traumatized I could start up an instance for you, right now I'm dealing with some things though

from dev-setup.

LoganDark avatar LoganDark commented on August 29, 2024 1

@nelsonic Yeah, Nitrogen is down because the startup didn't exactly work out... I could spin up a personal instance for you if you'd like to try it out :>

from dev-setup.

LoganDark avatar LoganDark commented on August 29, 2024 1

@nelsonic Do you have a Discord for instant messaging? Cluttering up this issue is getting a bit boring. :P

I'll close it now, you can find my email on my profile if you'd like to send me the details in private. I don't like communicating over email/issues though. Discord is better :>

P.S. if you don't need admin access to Nitrogen, I have a version running on my local machine at http://ae6f3aa9.ngrok.io. Should be up for all of tomorrow (Monday).

from dev-setup.

nelsonic avatar nelsonic commented on August 29, 2024

@LoganDark I'm always curious to try online text/code editors. 👍
We've been using https://github.com/codemirror/codemirror ...
What was the goal of the startup? 💭

from dev-setup.

nelsonic avatar nelsonic commented on August 29, 2024

@LoganDark makes perfect sense. 😞
I'd love to pick your brains on what you learned in the process once you regain your inner peace.
🌧 > ☀️ >🌈 > 😊 > 💬

from dev-setup.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.