팀 언어 기반이 혼합 된 경우 ac # dev가 VB.net으로 전환해야합니까?


14

최근에 .net 플랫폼에서 언어 기본 설정이 혼합 된 새로운 개발 팀에 합류했습니다.

  • 개발자 1 : VB.net을 알고 C #을 모른다

  • 개발자 2 : VB.net을 알고 C #을 모른다

  • 개발자 3 : c # 및 VB.net을 알고 c #을 선호

  • 개발자 4 : c # 및 VB6 (VB.net은 매우 쉽게 선택할 수 있음)을 알고 있으며 C #을 선호합니다.

.net 공간의 사고 지도자는 거의 보편적으로 C # 개발자 인 것 같습니다. 또한 일부 타사 도구는 VB.net을 지원하지 않는다고 생각했지만 그 도구를 살펴보기 시작했을 때 좋은 예를 찾지 못했습니다.

나는 전체 팀을 C #으로 얻는 것을 선호하지만 선호도를 제외하고 문제를 강제할만한 이유가 없다면 그것이 올바른 선택이라고 생각하지 않습니다.

사람들을 VB.net에서 멀어지게하는 이유가 있습니까?


5
VB 내에서의 장황만으로도 C #으로 이어질 것입니다.
Aaron McIver

13
개발팀에 심각한 리더십이 부족한 것 같습니다. 관리자가이 문제를 처리하지 않은 이유는 무엇입니까?

2
왜 VB .Net을 향해 표류하고 있습니까? 위의 다이어그램에서 어떤 기술을 가진 2 명의 개발자는 C #을 알고 있고 다른 사람들은 .Net을 전혀 모릅니다. 다른 두 개발자가 이미 C # 기술을 개발 했으므로 언어를 모르는 사람이 C #을 사용하여 속도를 높이는 것이 가장 좋을까요?

15
후드 아래에서 그들은 같을 수도 있지만 VB 구문은 더운, 잘 입욕 된 C # 자매 옆에 서있는 못생긴 사마귀 자매입니다. 구문은 많은 개발자의 눈이 자신의 지옥 버전을 응시하면서 흘린 피에 대한 참조 점으로 만 기억해야합니다. VB는 따뜻한 여름 더운 곳에서 부패하기 위해 도로 옆에서 중성화, 살해 및 방치해야합니다. 더 아름다운 구문을 받아들이고 어떤 대자연이 잊어 버린 것을 피하십시오. 현명하게 선택해.
Moo-Juice

2
내가 실수하지 않으면 On Error Resume Next는 레거시 지원입니다. CB 블록은 VB.Net에 존재합니다 ... .Net이기 때문에 시도하십시오.
Tony Abrams

답변:


2

프로젝트에 특히 유용하거나 시간을 절약 할 수있는 기능이없는 경우 누군가 언어를 변경하도록 강요 할만한 강력한 이유는 없습니다. 그들은 IL로 컴파일하고 동등하게 수행합니다 ( Option StrictVB.NET에있는 것으로 가정하면 그렇지 않으면 늦은 바인딩에 대한 처벌을받을 수 있습니다). 다른 모든 것들은 정말로 우선적입니다 (그것을 무시하지는 않지만 객관적인 척도는 아닙니다).

귀하의 지역에서 구인 정보를 살펴보고 구직에있어 어느 언어가 더 널리 사용되는지 확인하십시오 (예 : 두 언어의 노동 풀). 어느 쪽이 더 크거나 더 나은 노동력을 제공 할 것인지를 보는 것이 아마도 가장 강력한 지표 일 것입니다.


지역 구인 목록에 대한 귀하의 의견에 동의합니다. 간과하기 쉬운 것은 잠재적 인재 풀이라고 생각합니다. 한 언어를 다른 언어로 선택하는 것이 향후 채용 노력에 영향을 줄 수 있습니다.
jjr2527

7

다행히도 대답은 간단합니다. "최상의"언어는 없습니다. 모든 .NET 언어는 기본적으로 .NET Framework에서 제공하는 클래스 집합의 기능을 사용합니다. 따라서 VB.NET에서 수행 할 수있는 모든 작업은 C #에서 수행 할 수 있으며 그 반대도 가능합니다. 언어들 간의 유일한 차이점은 단지 구문적인 언어 일뿐입니다.

C ++, Java 및 J ++ 프로그래머는 말도 안되는 간결한 C # 구문을 선호합니다. Visual Basic (VB) 프로그래머는 Visual Basic .NET의 대소 문자를 구분하지 않는 의사 자연 언어 접근 방식을 사용하는 것을 선호합니다. VB 프로그래머가 있고 실제 프로그래머 인 경우 (옵션 엄격 켜기 참조) 동일한 결과를 얻을 수 있습니다. VB는 좀 더 장황합니다 ... C #은 대 / 소문자를 구분하는 볼 버스터입니다.


사실, 둘 다 98 %를 할 수 있지만 다른 하나는 VB에 매달릴 수있는 밧줄이 너무 많습니다. On Error Resume Next혼자 C #을 향해 달려 나에게 보낼 것입니다. 이 Module개념은 또한 매우 위험합니다. static classC #의 a와 비슷 하지만 ... 그 안의 모든 것은 부모 클래스를 참조하지 않고 전역 적으로 액세스 할 수 있으며 다른 표시없이 자동으로 정적입니다. 부모 클래스는 모듈입니다 ...!
Paul Sasik

6
nitpick 미안하지만 이것은 사실이 아닙니다. 예를 들어 C #에서 예외 필터를 작성하는 방법은 무엇입니까? blogs.msdn.com/b/clrteam/archive/2009/08/25/…

@LukeH C #에 예외 필터를 추가하기 위해 VB 또는 IL에서 함수를 빌드 한 다음 C # : D에서 호출 할 수 있습니다.

4
@Anna : 따라서 "VB.NET에서 할 수있는 모든 것은 C #에서 할 수있는 것"이라는 진술을 반박합니다 .

2
C #에서 할 수있는 VB.Net에서는 할 수없는 일이 많이 있습니다-또한보십시오 : stackoverflow.com/q/2362381/50447
Rowland Shaw

5

솔직히 Dev 팀은 같은 언어를 사용하거나 최소한 같은 언어를 알아야합니다.

이를 통해 개발자 팀이 생산하는 다양한 응용 프로그램 간의 교차 훈련 및 지원이 가능합니다.

결국 VB와 C #은 모두 기본 설정의 싸움이지만 팀은 사용하거나 지원할 페이지와 동일한 페이지에 있어야합니다.


5

팀 언어 기반이 혼합 된 경우 ac # dev가 VB.net으로 전환해야합니까?

개발자는 팀의 표준 인 .NET 언어를 사용해야합니다. IMO에는 사용되는 언어가 하나 있어야합니다 (매우 강력한 경우가 아니라면).

사람들을 VB.net에서 멀어지게하는 이유가 있습니까?

나는 대부분의 사람들이 C #을 선호한다고 생각하지만 이것은 정치적 또는 사업 적 결정과 같은 기술적 문제는 아닙니다. 사용할 .NET 언어를 결정한 다음 사용하십시오. 이제 고려해야 할 여러 가지 요소가 있습니다.

  • 기존 코드베이스가 있습니까? 대부분의 언어는 어떤 언어로 작성됩니까?
  • VB.NET 개발자가 C #을 쉽게 선택할 수 있습니까? 그들은 하시겠습니까?
  • C # 램프 업 / 훈련에 투자하는 것이 재정적으로 의미가 있습니까?
  • 언어 전환이 기존 결과물에 어떤 영향을 줍니까?

개인 취향보다는 팀에 대해 생각하기 +1
MarkJ

4

실제로 VB.NET에는 C #에없는 몇 가지 기능인 XML 리터럴과 LINQ에서 Aggregate 메서드를 사용하기위한 쿼리 구문이 있습니다.


1
VB.NET에는 이터레이터도 없습니다 (예 : C #의 Yield 키워드).
atconway


2

나는 당신이 지금있는 2003 년과 비슷한 상황에 처해있었습니다. ASP Classic에서 ASP.NET으로 옮기는 팀을 관리하고있었습니다. 대부분의 팀은 ASP의 사실상의 언어로 VBScript에 대한 경험이 있었지만 ASP / VBScript에서 약간 더 복잡한 마이그레이션 경로에도 불구하고 팀의 약 절반이 C #을 선호했습니다. 궁극적으로 VB.NET을 선택했지만 회고에서는 C # 경로를 실제로 사용하기를 바랍니다.

그 결정의 5 년 기념일에 나는 결정을 내리는 것에 대한 나의 이론적 근거에 관한 블로그 기사를 썼고, 같은 개발을 시도하는 다른 개발 관리자들에게 나의 후 시점의 이점을 제공하려고 노력했다. 기사에 대한 링크는 다음과 같습니다.

"C #과 VB.NET 결정에 대한 관리자의 회고"

전체 기사를 읽고 싶지 않은 사람들에게는 짧은 이야기가 있습니다 .C # 대신 VB.NET을 선택했을 때 프로젝트가 더 나빴다 고 생각하지 않으며 아마도 짧은 시간에 많은 시간을 절약했을 것입니다. 가장 큰 문제는 실제로 채용에 관한 것이 었습니다. 어느 언어로든 작업하기 위해 C # 또는 VB.NET 프로그래머를 행복하게 고용 할 것입니다. 그들은 실제로 그렇게 다르지 않습니다. 그러나 자격이 있든 없든 VB.NET에는 많은 수의 개발자가 기본 언어로 작업 할 것으로 알고있는 작업을 피할 수있는 낙인이 있습니다.


C # 프로그래머로서 저는 VB.NET을 사용하는 프로젝트에서 일했습니다. 그러나 VB.NET 프로그래머는 자신이하는 일을 알지 못했고 Comp Sci 학위를받지 못했으며 100 줄의 코드로 메소드를 작성했습니다. 따라서 VB.NET을 요청한 구인 광고를 무시하고 싶었습니다.
Ian

1

C #은 덜 장황하고 내 경험으로는 인터넷에서 훨씬 더 널리 퍼져 있기 때문에 C #에 기대어 들었습니다. 또한 C # 또는 VB.NET은 무시하기 쉽고 중요하지 않은 시점까지 쉽고 빠르게 배울 수 있다고 주장합니다. 반면에 .NET 프레임 워크는 거대하고 끊임없이 진화하는 생물입니다. .NET을 마스터하는 데는 몇 년이 걸리지 만 C # 또는 VB.NET을 마스터 하는 데 몇 개월 걸릴 있습니다.


0

@Anna Karin이 좋은 지적을 가지고 있다고 생각하므로 라이브러리에 대해 걱정할 필요가 없습니다. 적어도 vb.net이 아닌 c #에서만 작동하는 것을 기억할 수 없습니다.

다른 중요한 점은 다른 언어로 작업하는 경우 같은 팀 구성원간에 코드 검사를 더 어렵게한다는 것입니다. 나는 의사 소통의 마찰을 줄이기 위해 일부 코맘 언어를 사용하는 것이 가장 좋습니다.


0

이전 답변은 .NET이 현명한 기능이어야한다는 점에 동의하지만, 항상 그런 것은 아니지만 간단한 프로젝트가있는 경우 중요하지 않을 정도로 가깝습니다.

팀 전체에서 C #으로 전환 한 주된 이유는 대부분의 예제가 사용하는 언어이고 대부분의 오픈 소스 프로젝트가 C #으로 소스 코드를 게시하기 때문입니다. 따라서 팀이 그러한 리소스를 가져 오지 못하면 불필요하게 자신을 제한 할 수 있습니다.


0

C # 및 VB.NET은 .NET 플랫폼을 기반으로합니다. .NET에서 일하는 개발자에게는 .NET, 원리, 기술, 패턴을 아는 것이 중요합니다.이 경우 언어 간 전환은 문제가되지 않습니다. 주로 구문에 관한 것입니다. 혼합 된 팀에서는 모두가 두 언어를 배우려고 노력해야하지만 (큰 문제는 아님), 향후 팀 구성원 간의 협업에 중요 할 수 있습니다.


0

모든 사람이 같은 언어를 사용하게함으로써 얻을 수있는 장점 중 하나는 개발자가 코드의 어느 부분에서나 작업 할 수 있다는 것입니다.

그 외에도 VB.NET과 C #은 .NET의 구문 만 다릅니다. 두 언어로 작성된 코드는 동일한 프로젝트에서 공존 할 수 있습니다.


0

나는 C #과 함께 갈 것입니다 :

  • Java 및 C ++에 더 가깝습니다 (CS 과정에서 매우 자주 사용되는 언어).
  • C #의 인터넷에는 VB보다 많은 리소스가 있습니다 (내가 본 것부터).
  • VB보다 C #을 더 잘 알고있는 다른 개발자를 찾거나 고용 할 가능성이 높습니다 (내 회사에서 본 것).

0

내 의견은 인터페이스를 사용하여 계약 기반 개발을 가능하게하며 개발자는 원하는 언어로 클래스를 코딩하고 다른 어셈블리에서 저급 / 고급 클래스를 분리 할 수 ​​있어야한다는 의견입니다. 클래스가 요청 된 인터페이스를 존중하고 요구 사항을 구현하는 한 문제가 거의 없습니다.


0

나는 다른 많은 답변에 동의합니다. 저는이 결정을 내려야하는 두 팀의 일원이었습니다. 두 언어 모두 처음에 두 언어가 함께 작동하기 때문에 개발자가 선택할 수 있다고 결정했습니다. 그러나 두 해 모두 첫 해에 그들은 C #을 선택하고 모든 새로운 프로젝트가 C #에 있어야한다는 새로운 요구 사항을 적용하기를 바랐습니다.


0

C #을 사용해야하는 이유 :

  • 지금까지 두 명의 개발자가 기뻐 했으며 다른 두 명의 개발자가 배우면 좋을 수도 있습니다 .
  • 어느 시점에서 더 많은 개발자를 고용 할 계획이며 "20 년의 VB 경험"군중을 피하고 싶습니다.
  • 당신은 중괄호를 좋아합니다.
  • 당신은 인생을 사랑합니다.

VB.NET을 사용해야하는 이유 :

  • C #을 모르는 두 개발자는 절대로 배우기를 거부합니다.
  • "최소 저항의 길을 따라 흔들리는 것"은 회사의 모토입니다.
  • 업데이트 할 수없는 거대한 기존 VB 코드베이스가 있습니다.
  • 당신은 HP 러브 크래프트 킥에 있으며, 일상 생활에서 "엘리치 공포"가 부족하다고 애도합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.