이 페이지를 번역했습니다.

당신도 개발의 희생자가 될 수 있다.

by Jon Evans

개발자들에게:

3가지 기기 제품군에서 사용되는 8가지 프로그래밍 언어에만 능숙해서 불안한가요?
또 다른 JavaScript framework에 대한 노출이 당신을 두렵게 만드나요?
어떤 클라우드 플랫폼이 적절할지 몰라서 pet project를 연기 해본적이 있나요?

당신은 또한 Developaralysis로 고통받을 것입니다.

Be afraid. There is no cure.

오늘날 개발자들이 이용할 수 있는 선택사항들은 터무니없다. We're choking on a cornucopia. 지난 몇년동안 저는 다양한 SQL / key-value / document datastores (MySQL, PostgreSQL, MongoDB, BigTable, Redis, Memcached, etc.)를 기반으로 Java, Objective-C, C, C++, Python, Ruby, JavaScript, PHP를 작성해서 돈을 받았다. 하지만 저는 만족하지 않습니다. 저는 Erlang, Clojure, Rust, Go, C#, Scala, Haskell, Julia, Scheme, Swift 또는 OCaml으로 아무것도 하지 않은 것에 대해 죄책감을 느낍니다.

저는 Developaralysis의 희생자입니다. (Developaralysis: 소프트웨어 산업이 너무 빨리 발전해서 아무도 따라갈 수 없다는 암울한 느낌)

거의 모든 언어를 사용하고 다양한 framework와 toolkit 및 library를 사용할 수 있도록 해야합니다. 머리가 터질 정도로. 오늘날 JavaScript framework와 library 확장에 대한 제대로된 평가를 완료하는데 몇달이 걸 릴 것입니다. 당신은 Ruby gem이 얼마나 있는지 압니까? 아니면 iOS framework는요? NewSQL / NoSQL datastores는요? 그리고 심지어 Hadoop vs Spark vs Google Dataflow 또는 Avro vs Thrift vs protocol buffer ... 도 있다.

적어도 모바일에서는 Andorid, iOS로 축소되었지만, Xamarin 또는 PhoneGap, Sencha와 같은 식으로 크로스 플랫폼 HTML과 같은 crossover 대안을 숨기지만, 백엔드를 배치하는 위치와 방법을 파악해야한다. Heroku, Amazon Web Services, Google App Engine, Google Compute Engine 및 Parse에 배포된 시스템에서 작업했다. 실제로 OpenStack, Force.com, Azure, AppFog, 실제로 제가 사용해본적 없는 수많은 AWS 서비스에 대해 거의 알지 못한다고 느끼게한다.

오늘날 개발자들은 사용 가능한 옵션이 너무 많아서, Tool의 목록을 관리하기 위해서 Bundler, Bower, CocoaPods, Pip 등과 같은 다른 Tools를 사용하고 있다. 그런 다음 다른 Tools를 사용하기 시작한다.

슬픈 사실은 오늘날 개발자들이 사용할 수 있는 언어, Tools, framework 및 플랫폼이 엄청난게 많다는 것이다. 물론 아무도 이것을 인정하고 싶어하지만 진실은 우리 모두가 Developaralysis에 고통받고 있다는 것이다.

정보에 입각한 결정을 내리는데 필요한 정보를 모으는 것 조차도 비생산적이다. 프로젝트에 착수하기 전에 실제로 모든 가능성을 분석하고 그 결과로 얻은 학습 곡선을 올린다면 PHP와 Swift를 사용하여 10대 청소년이 시장에 맞을 수 있게 된다.

하지만 다른 한편으로는 Swift와 PHP에 정착하면 Paul Graham이 Lisp에서 했던 방식으로 당신은 어떤 닌자 C# / Haskell 프로그래머가 주위에 링을 돌고 있는 공포에 떨 수 있습니다.

기술은 선택할때, 당신은 다른 사람이 했던 것을 무시해야합니다. 가장 일을 잘 수행할 것을 고려해야합니다. 사실 우리는 비밀스런 무기를 가지고 있었습니다. 우리는 누군가가 생각한 것보다 빠르게 소프트웨어를 개발할 수 있었습니다. 우리는 이상한 AI 언어로 우리의 소프트웨어를 괄호로 가득 찬 기괴한 구문으로 작성했습니다.

따라서, Developaralysis. 학습 곡선을 포기하지 않고 지금 이동할 수 있기 때문에 우리가 이미 알고 있는 것을 선택합니까? 누군가의 다른 사람이 그것을 더 잘, 더 빨리 다룬다는 공포에 살고 있다. 우리의 기술이 내년에 쓸모 없어지고 경쟁력이 떨어집니까? 우리가 배우는 것을 좋아하고 더 나은 도구가 더 재미있고 큰 경쟁 우위를 가지고 있기 때문에 상당한 시간, 노력을 희생해서 지식을 늘립니까?

+ Recent posts