프로그래밍 환경으로서 Ubuntu는 Windows보다 어떤 이점이 있습니까?


59

Windows에서 Visual Studio와 같은 IDE를 사용하는 것보다 텍스트 파일이나 터미널을 통해 프로그램을 작성하는 것이 더 나은 옵션 인 이유는 무엇입니까? IDE가 제공하는 기능이 존재합니까 (예 : 컴파일 오류 표시) 수동 프로세스입니까?


16
일부 사람들은 오랫동안 프로그래밍을 해왔으며 텍스트 기반 명령 프롬프트에서 수행하는 작업에 매우 효과적이었습니다. 그들은 또한 vim자신이 좋아하는 편집자를 찾을 수도 있습니다 . 이것은 매우 주관적인 영역입니다! 많은 사람들이 Linux에서 IDE를 사용하므로 여기에서 여러 가지를 혼란스럽게 만들고 있습니다.
Warren P

3
IDE가 문제 의 핵심 이 아니라고 생각 합니다. 리눅스 OS를위한 많은 IDE 가 있습니다 . 예를 들어 모든 JetBrains IDE (IntelliJ / PyCharm 등)는 Linux에서 작동합니다. Eclipse는 Linux에서 작동합니다. QtCreator는 리눅스에서 작동합니다.
Bakuriu

12
이 사이트에있는이 질문은 확인 편견 으로 고통받을 것 입니다.
zzzzBov

5
메타 토론에 대한 질문을 깨끗하게 유지하기 위해 별도의 메타 주제를 열어 구체적으로 설명했습니다 .
Oli

4
이 제목을 더 잘 이해하려면이 질문을 다시 입력하십시오. 우분투는 Windows보다 더 많은 소프트웨어 개발을 위해 IDE를 피하고 텍스트 편집기를 사용하도록 강요하지 않습니다.
Reinier Post

답변:


87

이런 종류의 가설은 Programmers.SE에서 더 효과적 일 수 있습니다. 왜냐하면 여기에서는 꽤 일방적이기 때문입니다. 즉, 몇 년 동안 .NET 개발자였으며 ​​Visual Studio에 의존하게되었습니다. 그것은 당신을 위해 많은 일을합니다. 예, 특히 통합 디버거를 좋아합니다 ... 그러나 사람들이 Linux를 선택하는 몇 가지 이유가 있다고 생각합니다.

  • 우분투는 무료입니다. Windows와 VS는 매우 비쌀 수 있습니다.

  • 우분투는 무료 입니다. Windows와 VS는 사용 방법을 거의 제어 할 수 없습니다.

  • 우분투는 바로 사용할 수있는 프로그래밍 환경입니다. 배쉬 같은 도구, grep, sed, awk. Windows는 역사적으로 스크립트부터 시작하는 데 큰 고통입니다. 배치 파일은 끔찍하며 PowerShell을 사용하더라도 Windows의 명령 줄 환경은 Bash 및 GNU 도구와 비교할 때 무의미합니다. 그 중 일부를 Windows로 이식 할 수는 있지만 동일한 경험은 아닙니다.

  • 복잡한 설정은 Puppet , Chef , Juju , Fabricapt-get같은 도구 및 간단한 스크립팅을 통해 자동화 및 복제가 용이합니다 .

  • 복잡한 IDE가 필요없는 것들도 있습니다. 저는 오늘날 Python 개발자이며 자체 내장 도구 및 디버거에 매우 만족합니다. 텍스트 편집기, 명령 줄 및 패브릭을 사용합니다. 그리고 저는 .NET에서보다 제어가 훨씬 쉽습니다. 단일 Fabric 명령으로 웹 애플리케이션을 빌드, 테스트, 커밋 및 배포 할 수 있습니다.

    모 놀리 식 IDE가 없다고 말하는 것은 아닙니다. 이클립스와 넷빈즈. MonoDevelop. KDevelop4 및 QT Creator. 그들은 모두 맹세하는 사용자를 가지고 있습니다.

우분투는 더 당신을 위해 ? 누가 알아. 매우 유능하고 맞춤형 시스템입니다. 기회를 제공하고 워크 플로를 변경하여 도움을 줄 수 있다면,이를 고수 할 수 있어야합니다.


18
"무료"는 비용과 번거 로움입니다. Mac을 사용하지만 Vagrant와 같은 도구를 사용하면 모든 프로젝트에 깨끗한 Linux VM을 쉽게 설정하고 프로젝트가 완료되면 버릴 수 있습니다. "내가 원하는 것?" "이 OS에 대한 라이센스 키가 있으며 어떻게 인식합니까?"가 아닌 유일한 고려 사항입니다.
Nathan Long

14
+1 너무 많은 사람들이 무릎을 꿇고 "Windoze가 모든 것을 빨아 먹는다"는 태도를 갖는 것이 쉬운 경우 객관적인 자세를 유지합니다.
Phil

2
주목해야 할 한 가지는 Visual Studio가 예전보다 훨씬 자유롭고 한동안 MAKE 파일지원 했으며 플러그인을 사용하면 Visual Studio 내부에서 cygwin 응용 프로그램을 완전히 작성하고 디버깅 할 수 있다는 것 입니다.
Scott Chamberlain

6
even PowerShell scripts lack the power of Bash-나는 당신이 PS를 잘 모른다고 주장합니다. 그것은 매우 강력하고 PS에서 할 수없는 Bash에서 할 수있는 일을 만난 적이 없습니다.
Mark Henderson

4
@MarkHenderson 그래, 충분히 사용하지 않는 것이 거의 확실하다. Windows와 .NET을 내버려두고있는 것처럼 소개되었습니다. 나는 Bash를 생각한다 (그리고 "강타"가 정말 GNU를 의미) 당신이 그것을 사용하기 때문에 나와 함께했다 사방 과에 대한 모든 것을 . PS 는 모든 것이 항상 슈퍼 전문화되어 있기 때문에 매번 너무 많은 인터넷 검색이 필요했습니다 . Bash와 오랫동안 이야기 한 것은 솔직히 어렵습니다.
Oli

37

그래도 한 가지 더 중요한 이유를 추가하고 싶습니다. 우분투는 새로운 라이브러리, 언어, IDE 및 컴파일러를 실험하기에 좋습니다. 모든 것이 멀리 떨어져 있습니다.

Haskell 이라는 멋진 언어에 대해 들어 보았습니다 .

sudo apt-get install ghc
nano hello.hs
<copy-paste hello world example>
ghc -o hello hello.hs
./hello
Hello World!

아, 당신은 Haskell을위한 멋진 편집자를 들었습니다 :

sudo apt-get install <fancy-editor-for-haskell>

와 같은 C / C ++ 라이브러리, 당신은 단지 apt-get install그들과 바이너리와 헤더 오른쪽 폴더로 이동 할 수 있습니다 단지 #include조차 배치받을 위치를 확인할 필요없이 소스 파일에서 그들!

본질적으로 일상적인 작업 환경을 얼마나 빨리 설정할 수 있는지에 관한 것이 아닙니다. 또한 실험 환경을 얼마나 빠르게 설정할 수 있는지에 관한 것입니다. 이것이 리눅스에서 학습 경험을 가속화시키는 것이라고 생각합니다.


36
apt-get, 모든 방식으로 설치 가능해야한다는 생각은 아마도 Linux의 가장 좋은 방법 일 것입니다. 여기서 OSX와 Windows는 비교하지 않습니다.
Nathan Long

11
네,하지만 당신은 수동으로 각 응용 프로그램의 설치를 가져올 수있다 : 그들은 같은 설치 프로그램을 사용 사실이 내부 (그것을 저장 많이 구입하지 않는 그들에게 어떤 노력을). 내장 된 패키지 관리자와 다릅니다.
쓸모없는

2
@NathanLong Macports를 사용하여 똑같은 일을했습니다 : sudo port install ghc. 소스에서 새로 컴파일되었습니다. The MacPorts Project currently distributes 17699 ports. 한 가지 차이점은 항상 컴파일한다는 것입니다.
alecail

2
@karadeniz : 그리고 그것은 말할 것도 아니에요 yum, pacman, emerge, petget, pkgadd...
Aesin

2
나는 MacPorts를 좋아하지만 (그리고 거기에 Homebrew에 몇 가지 패키지를 유지 관리하지만) 실제로 데비안과 비교할 수는 없습니다. 이러한 소규모 프로젝트에는 대규모 저장소를 동일한 표준으로 유지할 수있는 인력이 없습니다. Windows 측의 cygwin과 coapp도 마찬가지입니다. 중요한 차이점은 문화적이라고 생각합니다. 리눅스 패키지 관리자는 시스템의 일부이며 모든 사람이 모든 것에 사용합니다.
jcupitt

20

다음은 주로 Microsoft 플랫폼 개발자의 의견입니다. .NET 생태계를 목표로하지 않는다면 최선의 선택은 우분투라고 주장합니다. Windows 대신 Ubuntu를 사용하는 경우 거의 모든 다른 플랫폼 / 언어에 대한 도구를 구하고 구성하고 사용하는 것이 훨씬 쉬워집니다.

Microsoft 툴체인의 가치는 강력하게 통합되어 있다는 것입니다. IDE에서 소스 제어, 프로젝트 관리, 빌드, 배포, 데이터베이스, 클라우드 인프라, 광고 구역까지 . Microsoft는 플랫폼을 완전히 활용하는 경우 매우 쉽게 만듭니다.

일부 사람들이 언급했듯이, Microsoft Way를 벗어나는 것은 고통 스러울 수 있습니다. 코드에 .NET을 사용하고 데이터베이스에 Oracle을 사용하면 고통 스러울 것입니다.

.NET 웹 애플리케이션을 생성하여 Amazon Web Services에 배포하려고합니다.

그러나 Microsoft 생태계 내에 머무르면 그 아기는 당신을 위해 조롱하는 새처럼 노래합니다. 유능한 소프트웨어 개발자는 Microsoft 플랫폼을 재능있는 운동 선수의 PED와 같습니다. 아마추어 프로그래머가 다음 Facebook을 만들 수는 없습니다. 그러나 그것은 조각이 어떻게 어울리는지를 이해하는 재능있는 개발자에게 우위를 줄 것입니다.

우분투를 시작하는 무료 (맥주에서와 같이) 비용에 대한 논쟁은 문 밖에 있습니다. Microsoft가 도구를 무료로 시작할 수있게 해주는 많은 프로그램이 있습니다. 스타트 업 회사에 3 년간 라이센스를 제공하는 Bizspark 포함 (도구의 프로덕션 사용 라이센스 포함). 그리고 학생들에게 무료로 제공하는 Dream spark.

즉, 새로운 언어와 플랫폼을 탐색하고 배우고 싶다면 우분투에서 시작할 수있는 더 나은 도구를 찾을 수 있으며 Microsoft 생태계 외부에서 일자리를 찾고 있다면 친숙해야합니다. 우분투와 함께.


7
네, 동의합니다. Linux 환경에서 잠시 동안 저수준 C / Unix 코드를 작성한 후, 잠시 휴식을 취하고 C # 그래픽 개발을 수행하기로 결정하고 새로운 VS를 시작했으며, 가장 해방되었습니다. 유연하지는 않지만, 당신의 영혼을 Micr에 팔고 싶지 않다면 확실히 일을 더 쉽게 만듭니다.
Thomas

3
예, +1 정보를 제공하는 안티 -MS 스니핑에 대한 반독을 환영합니다.
Alan B

15

나는과 도구의 IDE 및 텍스트 편집기를 모두 사용 C ommand- L의 오프라인 내가 nterface (라고 울부 짖는 소리 CLI 프로그램을 작성하는).

Linux가 제공하는 것은 기본 설치에서 시작 하는 유용한 CLI입니다. 필요하지 않고 어쨌든 IDE를 사용하고 있다면 더 이상 큰 차이가 없습니다 (IMHO).

십오 일

  • IDE는 많은 기능을 통합하여 그래픽 GUI에 표시 할 때 매우 유용합니다.
  • 단점은 새로운 사람을 압도 할 수 있다는 것입니다. 이제 IDE와 프로그래밍 언어라는 가지를 배워야합니다.

텍스트 편집기 및 CLI 도구

  • 텍스트 편집기와 CLI 도구는 배우는 데 오래 걸리지 않습니다.
  • 작동하지 않는 도구가 있으면 예상대로 작동하지 않는 도구를 쉽게 확인할 수 있습니다.
  • 모든 것이 텍스트 기반이므로 Google의 문제를 쉽게 찾을 수 있습니다.
  • 텍스트 편집기 및 CLI 도구를 사용한 프로그래밍은 특히 이전 하드웨어와 비교하여 더 빠르고 반응이 빠릅니다.
  • 저해상도 화면에서도 작업 할 수 있습니다.
  • 원격 서버에서 최소한의 리소스로 프로그래밍하고 디버깅 할 수 있습니다.

나는 종종 텍스트 기반 도구로 프로토 타이핑을합니다. 나중에 더 많은 파일을 관리 할 때 IDE가 제공 하는 리팩토링 도구를 소중하게 생각합니다.


8
나중에 참조 할 수 있도록 CLI는 명령 줄 인터페이스의 약어입니다. CLI는 일반적으로 GUI와 유사하지만 텍스트로 표시되는 적성 과 같은 인터페이스를 나타냅니다 . Vim은 CLI 편집기이지만 grepCLI는 아니고 인터페이스가 없습니다 (명령 줄 도구 일뿐)
kiri

명확성이 좋습니다. Windows 프로그래밍 배경 CLI에서 제공되는 CLI는 Common Language Infrastructure를 의미 할 수 있습니다 .
jltrem

GUI를 사용하여 GUI를 사용하고 CLI 또는 텍스트 기반 프로그램 / 콘텐츠를 개발하기 위해 텍스트 편집기를 사용합니다. Vim에서 GUI가 많은 비즈니스 응용 프로그램을 작성하려고 시도하지 않을 것입니다. Visual C #은 이러한 작업을 쉽게 프로토 타이핑합니다. 마찬가지로 Windows의 IDE에서 웹 개발 (PHP / HTML / CSS / JS 등)을 수행하지 않을 것입니다. 웹 서버의 Vim에서 수행하는 것이 훨씬 더 효율적이고 편리하기 때문입니다.
Dan

@ minerz029 CLI는 grep 스타일 프로그램입니다 (한 번에 하나의 명령 [줄]). 적성 / vim 스타일 인 "콘솔 응용 프로그램"을 생각하고 있습니다.
Izkata

4
@ minerz029에 대한 인터페이스 grep는 인수 stdin 및 stdout입니다. 단어는 그래픽 또는 의사 그래픽을 의미하지 않습니다. 다른 유형의 인터페이스에는 웹 API, 직렬 프로토콜 등이 있습니다.
Izkata

12

나는 내 대답을 반지에 던져 넣을 것이다.

당신이 얻을 수있는 가장 기본적인 대답은 그것이 철학에 관한 것입니다.


Microsoft 세계에서는 약간 종교적입니다. Mt. 구현을 원하면 탄원해야하는 레드몬드 때때로 그들은 듣고, 다른 때에 당신의 희생과 탄원은 귀가 들리지 않을 것입니다. 아마도 그들은 사냥을하고 있었을 것입니다. Microsoft는 전체 에코 시스템을 제어합니다. OS를 소유하고 IDE를 소유하며 SE 네트워크에서 이야기하기에 부적합한 방식으로 서로 연결합니다. IDE 피스 내에서도 단단히 결합되어 통합 이라고 할 수 있습니다.그러나 결합 된 것이 더 정확하다고 생각합니다. 조금만 바꾸고 싶다면 Gates는 Windows 또는 Visual Studio 디자이너가 명시 적으로 허용하지 않는 방식으로 무언가를 변경하고 싶지 않다고 금지했습니다. 그런 다음 IE, IIS, Microsoft 서버 및 MS SQL Server 및 Office와 같은 기술을 사용하십시오. 그러나 가족의 일부를 남겨두고 싶다면? 떨림 !


다른 한편으로, 당신은 리눅스가 있습니다. 리눅스는 유닉스 철학에서 각 부분이 자신의 작은 책임 영역에 대해 책임을 져야한다는 것을 상속합니다. 그것은 가지 일을하고 잘해야합니다. 그리고 통신은 텍스트 문자열을 통해 이루어져야합니다. 다른 사람들이 지적했듯이, sed, awk, grep, 등이 완벽한 예입니다. 그들은 자신이하도록 설계된 가지 일을하고 매우 잘합니다. 가지 작업을 수행해야하는 경우 두 도구를 결합하십시오. 매우 쉬운 일입니다.

때문에 sed텍스트가 될 것이다 들어오는 입력 외에 아무것도 기대하지, 그 것을 의미 어떤 텍스트를 생산할 수있는 바퀴를 재발견 할 필요가 없습니다. 그들은 단순히 사용할 수 있습니다 sed. 그리고 sed텍스트를 생성 하기 때문에 텍스트를 읽을 수있는 모든 것은 의 출력을 사용할 수 있습니다 sed. 텍스트는 매우 보편적이며 (이에 대한 예외가 있습니다) 이러한 유형의 것들을 결합하는 것은 매우 쉽습니다.

뿐만 아니라 그것은 쉽게 그들을 결합하는 것입니다,하지만 떨어져 그들을 분할 또한 매우 쉽습니다 - 나는 더 이상 스트림을 편집 할 필요가 없다고 결정하면,하지만 난 결과를 필터링 할, 내 텍스트를 전달하기보다는 sed, 나는 통과 할 수 그것에 grep대신.

이것이 바로 Linux 환경에서 개발의 기본 철학입니다. 따라서 많은 도구가 비슷한 인터페이스를 제공합니다. 그것들을 그것들을 부분으로 분해하거나 명령 행이나 포트 또는 HTTP를 통해 그것들과 인터페이스 할 수 있습니다.

그하더라도 그리고 없는 경우, 당신은 또한 오픈 소스 소프트웨어를 사용하고 있습니다. Linux 플랫폼에서 대부분의 소프트웨어는 오픈 소스입니다. 따라서 작성 방법이 마음에 들지 않으면 소프트웨어를 직접 변경할 수 있습니다. 이것은 엄청나게 힘을 실어줍니다. IDE를 원하는 방식으로 분리 할 수 ​​없습니까? 변경하고 다시 업스트림으로 제출하거나 프로젝트를 분기하십시오. 왜 어떤 식으로 동작하는지 잘 모르겠습니까? 루크! 명령 행을 통해 무언가를 자동화 할 수 있어야합니까? 프로젝트를 해킹하고 변경 사항을 적용하십시오. 버그 나 보안 문제가 있습니까? 이봐, 당신은 그것을 스스로 고칠 수 있습니다, 당신은 SP3.432vb89234.startdate1eQ가 나올 때까지 기다릴 필요가 없습니다.

원하는 도구와 원하는 도구를 결합 할 수 있습니다. 그리고 당신의 방식으로 무언가가 있다면, 당신은 그것을 100 % 바꿀 수 있습니다. 능력이 없더라도 그 변화를 개발하도록 누군가에게 돈을 지불하거나 노하우를 가진 다른 사람에게 제안 할 수도 있습니다.

이것이 프로그래밍에 더 좋은 이유는 마찰겪을 때 워크 플로에서 제거 할 수 있기 때문 입니다. 개발이 어렵 기 때문에 성공적인 프로그래머가되기 위해 생각해야 할 것이 많으며, 다른 것에 대해 생각하기가 더 어려워 야합니다 .

마찰을 제거하는 것이 중요합니다.

따라서 Microsoft ecostystem 종교가 집에서 느끼는 곳이고 도구를 너무 많이 사용하여 많은 마찰을주지 않으면 ... 아마도 괜찮을 것입니다.

그러나 특허 출원중인 Microsoft Mold (tm)에 맞지 않으면 마찰이 발생합니다. 개발은 고통이 될 것입니다. 당신이 원할 때마다 당신 은 무언가 할 수는 있지만, 할 수없는 것은 소중한인지 자원을 소모시킵니다. 이 경우 Linux 개발 환경이 적합 할 것입니다.


1
나는 당신이 연결 한 에세이를 정말로 즐겼습니다. 감사합니다.
Gareth Davidson

3
Balmer를 찬양하고 그의 모든 패리티 비트가 올바르게 설정 될 수 있습니다. ACK. ACK. ACK.
Warren P

9

더 일반적인 생각을 질문에 제공하고 싶습니다.

"리눅스가 프로그래밍을위한 더 나은 환경 인 이유는 무엇입니까?"

Linux에서 개발해야하는 가장 중요한 이유는 대부분의 소프트웨어 내부에 대한 통찰력이 있기 때문입니다. 관심이 있다면 실제로 어떻게 작동하는지 배울 수 있습니다. 이를 통해 좋은 습관과 나쁜 습관을 실제로보고 실천하고 배울 수 있습니다. 이를 통해 아이디어의 다양성을 높일 수 있습니다.


2
좋은 지적. 오픈 소스는 모든 종류의 호기심을 가진 모든 개발자에게 자연스러운 혜택입니다. 창문에서는 거북이 끝납니다!
Warren P

그건 좋은 지적이야. 여기에 소프트웨어 내부에 대한 통찰력이 있습니다
Anwar

많은 Windows 개발자는 Windows 플랫폼에서 전체 작업 수명을 다할 것이며 API에 대한 프로그래밍은 다른 쪽을 보지 못할 것입니다. 마음에 감옥의 종류, 당신은 생각하지 않습니까?
Warren P

@WarrenP API가 올바르게 문서화되어 있으면 소스 코드를보고 API에 대해 자세히 배우지 않을 것입니다. (두 세계 모두에서 많은 API가 완전히 문서화되어 있지 않다는 것을 인정하지만)
svick

8

리눅스가 프로그래밍에 더 좋은 이유

십오 일

특정 목적에 맞는 Visual Studio 및 Xcode 외에도 가장 널리 사용되는 IDE는 다중 플랫폼입니다. 수십 개의 언어에 대한 gazillion IDE가있는 것처럼 보이지만 결국 대부분 Eclipse , IntelliJ IDEA 또는 NetBeans를 기반으로합니다 . 공통점은 모두 Java 기반이라는 것입니다. Java는 동일한 하드웨어의 다른 OS보다 Linux에서 더 효율적으로 작동합니다. 실제로 Java는 동일한 하드웨어의 OS X보다 Linux에서 20 % 나 더 빠릅니다. 이러한 IDE 중 다수는 Ubuntu Software Center에서 한 번의 클릭으로 설치할 수 있습니다.

컴파일러

GCC는 업계 표준이되었습니다. 의심의 여지없이 주요 플랫폼은 Linux이며 가장 잘 지원됩니다. 그리고 무료이며 로열티가 없습니다.

추가 도구

Linux는 Valgrind (메모리 디버깅, 메모리 누수 감지 및 프로파일 링 도구) 와 같은 다른 플랫폼에서는 사용할 수없는 고유 한 도구를 제공합니다 . Linux에는 straceltrace 와 같은 디버깅 도구가 제공되어 프로덕션 코드조차 디버깅하는 데 사용할 수 있습니다 (예 : 디버깅 기호로 컴파일되지 않음). Windows에 해당하는 도구는 존재하지 않거나 매우 비싸며 동일한 기능을 제공하지 않습니다.

OSS 설치 용이성

우분투에는 훌륭한 패키지 관리자가 있습니다. 대부분의 경우 소프트웨어 설치는 간단합니다 apt-get install package-name(우분투 소프트웨어 센터 또는 시냅틱 GUI로도 가능합니다). 설치되면 버그 수정 버전으로 시스템에 의해 자동으로 업데이트됩니다. 패키지 시스템은 또한 종속성을 자동으로 추적하므로 필요한 다른 패키지에 대해 걱정할 필요가 없습니다. 자동으로 설치됩니다.

반면 Windows에서는 패키지를 수동으로 다운로드하여 설치해야하며 다른 패키지가 필요한 경우 수동으로 수행해야합니다. 시스템 전체의 업데이트도 없으며 각 소프트웨어 패키지는 자체 성가신 업데이터를 구현하거나 전혀 업데이트하지 않습니다.

프로덕션 머신은 Linux 일 가능성이 높습니다

백엔드, 웹, 클라우드 등을 위해 모든 종류의 프로그래밍을 수행하는 경우 대상 시스템이 Linux 일 가능성이 큽니다. 대상 시스템과 동일한 종류의 OS에서 개발할 때 놀랄 일이 훨씬 적습니다.

물론 Windows 용 데스크톱 응용 프로그램을 개발하고있을 수도 있지만 현재는 프로그래머를위한 틈새 시장입니다.


Windows 용 데스크톱 앱은 틈새 시장입니까? 뭐?
Alan B

2
@AlanB : 아니요, 데스크톱 Windows 프로그래머는 틈새 시장입니다. 프로그래머의 추정 된 90-95 %는 사내 개발을 수행하고 있으며 대부분 데스크톱 앱이 아닙니다. 또한 Windows 응용 프로그램을 마지막으로 구매 한 시점 (유료로 돈을 지불 한 시점)이 게임이 아닌 게임 (또는 해당 제품의 Adobe 제품)이 아니라고 생각해보십시오.
vartec

클라우드 중심 기업이 계속해서 다른 방식으로 주장하고 있음에도 불구하고, 비즈니스 공간의 거의 모든 것이 여전히 데스크톱 기반이며 비용을 지불하고 있음을 알 수 있습니다.
Alan B

4
@AlanB : 다시, 나는 최종 사용자 시장에 대해 이야기하고 있지 않습니다. 프로그래머를위한 직업 시장에 대해 이야기하고 있습니다. 예를 들어, 말하는 응용 프로그램 중 하나는 MS Office입니다. 그러나 MS의 전체 Office 팀은 2,500 명의 프로그래머에 불과하며 많은 사람들이 데스크톱 버전으로 작업하지 않습니다.
vartec

7

Windows에서 Visual Studio와 같은 IDE를 사용하는 것보다 텍스트 파일이나 터미널을 통해 프로그램을 작성하는 것이 더 나은 옵션 인 이유는 무엇입니까?

아닙니다, 나는 그것이 정반대라고 주장 할 수 있습니다. 그러나 일반적으로 사람들은 자신이 더 나은 도구를 선호하는 경향이 있습니다. 사용하는 도구 유형은 프로그램 작성이 쉬울 수 있습니다. 예를 들어 vim으로 Java 프로그램을 작성할 수는 있지만 Eclipse 또는 IntelliJ와 같은 완전한 IDE와는 달리 생산성이 떨어집니다. Jon Skeet은 IDE를 사용하는 이유 에 대한 큰 답변을주었습니다 .

원래 질문으로 돌아가서 리눅스가 더 나은 유일한 것은 C 프로그래밍입니다. Linux에서 할 수있는 모든 작업은 Windows에서 할 수 있으며 그 반대도 가능합니다 (프로그래밍 방식). C 프로그래밍은 역사적 이유로 Linux에서 더 좋으며 훌륭한 도구 세트를 제공합니다 (Windows BTW에서는 얻을 수 있지만 Linux를 설정하는 것이 훨씬 쉽습니다). 마찬가지로 C #을 작성하고 .NET을 작성하는 경우 Windows는 명백한 이유로 더 나은 선택입니다. 다른 모든 것은 완전히 주관적이며 양쪽의 장단점을들을 수 있습니다.


5
Windows에서 <여기에 MS를 제외한 다른 프로그래밍 언어를 입력하십시오> 환경을 설정하여 얼마나 멀리 있는지 확인하십시오.
Braiam

1
@Braiam 내가 한 Java : P.
Daniel

6
리눅스는 유닉스와 같은 것을 실행하는 것이 좋습니다. GCC 툴체인 (C 및 C ++ 컴파일러 및 기타 기능 포함)은 긴 Unix / Posix 유산을 가지고 있습니다. 그러나 모든 유닉스 계열 프로그래밍이 C 프로그래밍이라고 생각하면 유닉스 / Posix / Linux 유산과 도구의 다양성에 슬프게 노출되어 있습니다.
워렌 P

2
깊게 중첩 된 폴더와 많은 파일을 빠르게 생성 할 Java특별한 경우 입니다. 클래스 나 패키지의 이름을 바꾸 자마자 파일 이름이나 폴더를 각각 동기화해야합니다. Fun fun fun :)
MadMike

1
Linux와 CLI가 C 프로그래밍에 더 좋은지 여부는 알 수 없습니다 (VS는 C ++에서는 훌륭하지만 C99 지원이 부족합니다. Posix는 Win32보다 약간 깨끗할 수 있습니다). 그러나 apt-getC 개발에 관해서는 훌륭합니다. 당신은 신속 예를 들어 도구, 라이브러리 및 디버그 기호를 얻을 수 sudo apt-get install libcurl4-openssl-dev, sudo apt-get install valgrind, sudo apt-get install libz-dbg그리고 쉽게 물건을하려고합니다.
Alex Jasmin

6

프로그래밍에 사용하는 도구 (텍스트 편집기 또는 IDE)는 선택의 문제입니다. 일반적으로 다음과 같이 말할 수 있습니다. 초보자와 초소형 프로젝트는 숭고한 텍스트 나 수정 된 버전의 gedit와 같은 더 나은 텍스트 편집기를 사용하는 경향이 있습니다. 일반 텍스트 편집기를 사용할 때 더 많이 배우기 때문입니다. IDE는 (Visual Studio처럼;)를 자동화하여 학습 프로세스를 망칠 수 있습니다.

많은 도구와 언어로 혼란스러워하는 전문가에게는 IDE가 유용합니다. IDE를 사용하면 더 많은 일을 할 수 있기 때문입니다. 프로그래밍하려는 언어에 따라 선택할 수있는 IDE가 많이 있습니다. 더 나은 IDE와 덜 편리한 IDE가 있습니다.

내 개인적인 경험은 Ubuntu OS가 Windows보다 훨씬 빠르고 개발이 쉬운 설정이라는 것입니다. 필자는 사용하는 대부분의 도구와 프로그램이 Linux를 기반으로 구축되어 있기 때문에 좋아하는 프로그램에 대한 다운로드 링크를 인터넷에서 검색 할 필요가 없기 때문이라고 생각합니다. 그것은 단지 'apt-get install program1 program2 program3'입니다. 비교 : 프로그래밍에 필요한 모든 것을 갖춘 새로운 Windows 설치를 설치하고 구성하는 데 3 일이 필요하지만 (개인이 아닌 더 빠를 것입니다) 우분투에서 동일한 작업을 수행하는 데 하루가 걸립니다.

필자의 경험은 프로그래밍을 위해 Linux로 전환하는 프로그래머는 (대부분) 기술적 인 맥락과 기본 작동 방식에 대해 더 깊이 이해하고 있다는 것입니다. Mac 및 Windows 사용자는 왜 이런 방식으로 작동하는지 또는 왜 그렇지 않은지 알지 못하는 경향이 있습니다. 실제로 Linux를 사용하여 무언가를 배울 수 있는지, 아니면 그러한 사람들이 Linux로 전환하는 것을 배우 려는지 잘 모르겠습니다.

내 "blafasel"이 약간 도움이 되길 바랍니다.


1

나는 리눅스 배포판 IDE 라고 주장한다 .

처음에 Unix는 처음부터 개발 환경이되도록 설계되었습니다. 프로그래머를 위해 프로그래머가 작성했습니다. 대부분의 Unix와 Linux는 여전히 기본 구성으로 개발 도구와 함께 제공됩니다. 그리고 누락 된 부품은 apt-get멀리 떨어져 있습니다. 반면에 Windows는 저렴하지 않은 IDE 나 간단한 프로세스를 설치할 때까지 끔찍한 개발 환경입니다.

IDE는 GCC, Git 및 Vi (예 : GCC)를 사용하는 것보다 IDE가 더 밀접하게 연결되어 있다는 점에서 더 통합 되어 있습니다. 긴밀한 결합으로 '지능형'과 같은 것들이 더 잘 작동합니다. 그러나 느슨한 결합은 많은 장점 (예 : 유연성, 상호 호환성, 잠금 부족)이 있습니다.

또한 컴파일러 설계 (LLVM과 같이 쉽게 분리 할 수있는 프론트 엔드를 갖춘 컴파일러)의 발전으로 인해 느슨하게 연결된 환경에서도 구문 오류 강조 표시와 같은 기능을 더 잘 지원할 수 있습니다.


기본적으로 리눅스는 실제로 통합되지 않은 통합 개발 환경이라고 말하는 것입니까? :-)
svick

1

철학의 문제 : Ubuntu / Linux는 컴퓨터 프로그래머가 내부 및 하드웨어에 직접 액세스 할 수 있도록하는 반면 Windows는 일종의 게이트 키퍼입니다. 이것은 프로그래밍과 관련하여 중요한 철학적 문제입니다. 철학적으로 말해서,이 기능이 유리한 점은 사용자가 그 지식의 중요성을 충분히 알고 있거나 기술적으로 알고 있는지 여부에 달려 있습니다.

프로그래밍 문제 : Ubuntu / Linux의 전체 시스템 아키텍처는 하나의 작업을 수행 한 다음 더 복잡한 작업을 수행 할 수 있도록 작고 간단한 프로그램의 유닉스 전통을 기반으로합니다. 프로그래머에게는이 아키텍처가 엄청나게 강력하며, 필자가보기에 Unix가 모든 플랫폼의 다른 모든 소프트웨어 아키텍처에 비해 장기적으로 우세한 이유입니다. 유닉스가 현재 지배적이지 않은 소수의 장소 중 하나는 데스크탑이지만 시간이 지남에 따라 바뀔 것입니다. 우분투와 같은 배포판은 이러한 진화를 보는 데 도움이됩니다.

그러나 Windows에는 매우 좋은 프로그래밍 환경이 있다는 데 논쟁의 여지가 없습니다. 회사 환경 내에서 프로그래밍하는 경우에는 주로 지배적입니다.


0

속도가 정답입니다.

Visual Studio 또는 QtCreator와 같은 그래픽 IDE를 사용하면 바로 가기를 사용해야 할 때 마우스를 너무 많이 사용합니다. 컨텍스트를 전환 할 때마다 두뇌를 일시 중지하고 대상에 집중하고 조치를 기다립니다. F5를 누르는 것은 무한대로 빠릅니다.

이제 vim, Emacs 또는 멋진 버튼이없는 다른 것을 사용하는 경우 키 누름에 중점을 둘 것입니다. 한 가지 방법이 있으며 루틴 때문에 더 빠릅니다.

오류는 내가 선호하는 명령 인터페이스를 통해 더 장황하게 제시되며 컴파일 중에 피드백을 제공합니다. 내가 Visual Studio에 대해 싫어하는 한 가지는 기본값은 컴파일을 나타내는 작은 아이콘이며 오류 목록이 나타납니다.

좁은보기로 가독성을 높이기 위해 80 열 너비를 유지하면서 200 열 너비에 이르는 코드를 보았습니다. 80 열에 맞는 코드를 사용하면 한 번에 4/5 개의 창을 열 수 있습니다.

CLI 편집기를 사용하면 원격으로 코딩 할 수 있으므로 Visual Studio에 느린 (텍스트와 비교되는) RDP 세션이 필요하지 않습니다. GSM 링크를 통해 코딩 할 수 있습니다.

시각적 형태 개발은 짜증나. GUI IDE에서 얻을 수있는 장점 중 하나는 화면을 더 빨리 그릴 수 있다는 것입니다. 그러나 내 경험상 프로토 타입에는 좋지만 종종 코드에서 수동으로 수행하면 더 나은 결과를 얻을 수 있습니다. 오늘 아침 VS2012 코드 분석기는 Visual Studio에서 자동 생성 된 코드에서 200 개 이상의 문제에 대해 경고했습니다.!?!?


0

귀하의 실제 질문은 "우분투에서 실행되지 않는 Visual Studio 대안이 있습니까?"라고 생각합니다.

MonoDevelop.

그것은 실행 가능하지만 VS와 모든 기능에 익숙하다면 싫어할 것입니다.

텍스트 편집기를 사용하면 이점이 없습니다. Intellisense라는 좋은 점을 기억하십니까? 일어나지 않습니다 (그러나 MonoDevelop에는 이와 비슷한 것이 있습니다). 도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.