Что узнать дальше: F # или LINQ - PullRequest
8 голосов
/ 04 марта 2010

Я только начал мокнуть от C # и .NET, и мне это нравилось до сих пор. Я думаю, что у меня есть основная суть языковых конструкций C #, так в какую технологию мне следует углубиться: F # или LINQ?

Я стремлюсь как к «расширению моего горизонта» программирования, так и к «Расширению моего резюме» в произвольном порядке.

ОБНОВЛЕНИЕ: после прочтения ваших ответов я до сих пор склоняюсь к изучению LINQ, поскольку это "необходимо для всех .NET-программистов". Я оставляю вопрос открытым на некоторое время, просто чтобы получить больше мнений. Спасибо за ваши ответы.

ОБНОВЛЕНИЕ 2: Хорошо, поэтому, читая ваши ответы, казалось бы, что LINQ имеет самую простую кривую обучения и применяется к C # и F # к обоим, поэтому время, проведенное с LINQ, не "теряется", даже если я в конечном итоге пойду с F #. Еще раз спасибо за ваши ответы.

Ответы [ 8 ]

19 голосов
/ 04 марта 2010

LINQ не является языком программирования по сравнению с F #, но вы должны изучить LINQ, поскольку это облегчит вашу жизнь в C # и F #.

6 голосов
/ 04 марта 2010

Это зависит от того, что вам нужно сделать.

Если вы хотите создавать приложения WPF или ASP.NET или Silverlight для Интернета, погрузитесь в C # и LINQ. Если вы хотите создавать научные, финансовые приложения, работающие с цифрами, используйте F #. Если вы просто хотите повеселиться, используйте оба: -)

Обратите внимание, что усилия, необходимые для изучения LINQ, и усилия, необходимые для изучения F #, разделены на несколько порядков: LINQ - это просто библиотека и специальный синтаксис для построения запросов, и если вы привыкли писать SQL, вы найдете его легко понять. С другой стороны, если вы привыкли к императивному программированию на таких языках, как C #, освоение F # потребует смены парадигмы. Таким образом, F # также является технологией, которая максимально расширит ваш кругозор (конечно, в зависимости от вашего текущего набора навыков).

3 голосов
/ 04 марта 2010

Я провел некоторое время с F # в качестве хобби, прежде чем у меня была возможность изучать C # 3 для работы. Оказалось, что я уже активно использовал LINQ в своем коде F #, не зная его в форме выражений последовательности. Когда я познакомился с LINQ, я сразу же узнал его и сразу понял принцип отложенного исполнения.

Итак, если вы изучаете F #, вы уже знаете LINQ. Вам нужно только найти синтаксис.

Кроме того, изучение программирования идиоматического F # научит вас думать как функциональный программист. Знание того, как программировать с использованием рекурсии, запоминания и неизменяемых значений, также поможет вам в создании более чистого кода C # (конечно, с LINQ). Это мой опыт.

3 голосов
/ 04 марта 2010

Linq и F # очень разные.

F # - сам по себе язык, но linq - это инструмент или функция, которую вы можете использовать в этом языке.

Linq - это фантастика, которая упростит ваше развитие во многих областях и сделает вас более продуктивным в долгосрочной перспективе.

Linq является обязательным для всех разработчиков dotnet.

Вот ссылка, показывающая, как вы можете использовать linq Linq 101

2 голосов
/ 04 марта 2010

LINQ (Language Integrated Query) - это небольшой встроенный язык в C #, который позволяет вам работать с коллекциями объектов очень естественным образом, например,

int[] numbers = new int[] {1,2,3,4,5,6,7,8,9};

var smalloNumbers = from n in numbers where n < 10 select n;

Это действительно C #, LINQ - просто еще одна особенностьязыка, который он делится с VB.Связанные технологии используют LINQ для доступа к хранилищу базы данных (LINQ-to-SQL, LINQ-to-NHibernate и т. Д.) Или других интересных служб (таких как amazon или ebay и т. Д.), Но сам LINQ можно изучить на языке C # (LINQ-to).-объекты) без необходимости играть с базами данных или что-то в этом роде.

F #, с другой стороны, является полноценным «функциональным» языком, и, будучи языком общего назначения, особенно хорош в работе с большими коллекциями вещей, проблемами стиля сокращения карт и рекурсивной обработкой.

Итак, в заключение я бы порекомендовал сначала выбрать LINQ вместе с другими языковыми функциями в C ~, которые вы, возможно, пропустили (LINQ также проведет вас через лямбда-выражения, анонимные типы и ключевое слово var, если они еще не встречались), а затем перейдите наF # как новый учебный проект на более позднем этапе.Как разработчик C # я использую LINQ каждый день в своем коде.

Надеюсь, это поможет.

1 голос
/ 04 марта 2010

ИМХО

F # , а затем LINQ

0 голосов
/ 04 марта 2010

Почему не другие фреймворки в пространстве .Net, такие как WCF, WPF, ASP.net MVC, некоторые .Net ORM и т. Д.? F # для функционального языка программирования на платформе .Net. Если вы не использовали другой функциональный язык программирования, это другая парадигма, и кривая обучения будет круче, чем для LINQ. Лучший способ изучить LINQ - это ИМХО использовать его в игрушечном или реальном проекте, где вы используете C # и базу данных SQL-сервера. В LINQ не так много нового синтаксического сахара.
С другой стороны, хотя вышесказанное относится и к изучению F #, вы можете решать любые упражнения по программированию или проектировать головоломки Эйлера, используя F #, чтобы ознакомиться с конструкциями программирования.

0 голосов
/ 04 марта 2010

Они оба хороши в освоении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...