https://wiki.theory.org/index.php/YourLanguageSucks
YourLanguageSucks - Theory.org Wiki
JavaScript sucks because Note some of this is not JavaScript itself, but web APIs (https://developer.mozilla.org/en/docs/Web/API) Poor Design Every script is executed in a single global namespace that is accessible in browsers with the window object. XMLHt
wiki.theory.org
언제 한번 Java 부분을 번역해봐겠다 하며 할일 목록에 추가만 해둔지 수년이 지났다. 오랜만에 위키에 들어가보니 이젠 유행이 다 끝났는지, 마지막 업데이트가 2017년이다. Swift도 없다. 일종의 자학 개그이면서 부심 개그인데, '우리 언어가 더 구려'라고 엄살을 피우면서도 한편으로 '내가 이 언어를 이정도로 이해하고 있어'라는 거들먹거림도 함께 녹여져 있다. 자바는 양이 많으니 Objective C 라도 가볍게 번역해볼까 생각했지만, 막상 주욱 읽어보니 정확하게 번역할 자신이 없었다.
- No real use outside of programming for OS X and iOS that can't be done by another C-derived language, meaning your skill set doesn't extend past a certain market.
- Using Objective-C portably is an oxymoron; GNUStep is a window manager for the fringe on Linux, and there's nothing really there for Windows at all... about the only thing that works is the compiler.
- No operator overloading.
- A "work-around" exists for method overloading.
- Tries to shoehorn the dynamically-typed Smalltalk into the statically-typed C.
- No stack-based objects.
- Syntax is very strange compared to other languages (I have to put a @ before the quotes when making a string?! Methods are called like this unless you have a single argument?!? [methodName args];)
- http://fuckingblocksyntax.com
- There is no specification at all. No one (except maybe some LLVM developers and Apple) really knows what's going on under the hood.
- Could randomly crash if you return SEL from method [4]
- Awful type system. Types are more recommendations than types.
- Objective-C++ and the unholy horrors that arise from that
- Objective-C and C++ classes can't inherit from one another.
- C++ namespaces cannot interact with Objective-C code at all.
- C++ pass by value can't be applied to Objective-C objects in C++ functions; you have to use pointers.
- C++ lambdas and Objective-C blocks are different and not interchangeable.
- Objective-C classes can't have members that are C++ classes that lack a default constructor, or that have one or more virtual methods... except via pointers and allocating via new.
- Has no namespaces and instead encourages to use prefixes (two characters mostly) every class' name to prevent naming collision
- Objective-C has no standard library. Apple controls the de-facto one, and everything's prefixed with NS*.
- Apple's focus on Swift (which is itself yet another platform-specific language) means Objective-C is being left to rot on the vine.
Awful type system이라니. 그래... Auful이란 말은 저런 때 쓰는 거구나.
'매일 생산하기' 카테고리의 다른 글
호기심 (0) | 2019.10.09 |
---|---|
배가 고픈가? (0) | 2019.10.01 |
회사에서 시간 관리하기 (0) | 2019.09.27 |
갓오브워 (0) | 2019.09.25 |
추위 - 정인, 윤종신 (0) | 2019.09.24 |