In Green Custard's 9th Friday talk, James explores the subject of Software Religious Arguments.
Topics covered:
- Bracket styles
- Editors
- Strongly typed vs weakly typed
- Windows vs Linux
- iOS vs Android
Green Custard is a custom software development consultancy. To discover more about their work and the team visit www.green-custard.com.
2. Topics
● Bracket styles
● Editors
● Strongly typed vs weakly typed
● Windows/Linux - Mac is both
● iOS/Android
3. Bracket Styles {1}
Two extremes:
public void foo()
{
if (condition)
{
action1();
}
else
{
action2();
}
}
public void foo() {
if (condition) {
action1();
} else {
action2();
}
}
4. Bracket Styles {2}
Points to consider:
● Readability.
● Fitting as much on the screen as possible.
● Lining up related braces visually.
● Coding standard - can you tell who wrote it.
● Related - restricting width to 80 characters.
● Related - 2 or 4 spaces, or tabs?
5. Bracket Styles {3}
The compromise?
public void foo()
{
if (condition) {
action1();
}
else {
action2();
}
}
6. Best Editor (1)
There are many from which to choose:
● Emacs
● Vi(m)
● Visual Studio Code
● Notepad
● Sublime
● Atom
● Eclipse
● IntelliJ / Jetbrains
7. Best Editor (2)
● The answer is that it depends on what you are doing.
● Tightest integration with the language and tools is winner.
● What are people’s preferred editors for embedded, mobile, fullstack
(frontend+backend)?
● Maybe the question should be: best generic editor. But then there is only one:
emacs.
● It even has a doctor: M-x doctor
When life, the universe and everything is all getting too much. The doctor is a
Rogerian psychotherapist who will help you with your problems.
● To try it (without emacs), go to:
http://www.zenjero.net/morezen/doctor/index.php
8. Strongly Typed vs Weakly Typed
● We’re talking about having this:
int foo = 1 or this: var foo = 1
● A strongly typed system is one in which there is no possibility of an
unchecked runtime type error.
● There are many advantages of a strongly typed system, mainly around
catching errors before you even trying running it.
● The main advantage of weakly typed systems is less typing, the implication
being less typing = time saved. False economy? Linters help, a bit.
● Does it save you time if somebody somebody subsequently makes an edit to
another part of the code base that interacts with your code?
9. Windows vs Mac
● Mac is more expensive. Initial cost, lifetime ownership? Resilience against
accidents?
● Customer service? Lenovo ThinkPad?
● Windows has more software. What about if we limit that to just developers?
What about for gamers?
● Fewer viruses for the Mac.
● What about linux?
10. iOS vs Android
● In many ways this is similar to Max vs Android.
● iOS is more expensive, but similar arguments exist to the lifetime ownership
conversation with Windows.
● Customer service.
● Rate of advancements in underlying OS.
● Integration with Cloud and other technologies.
● Quality of apps?
● Malware.