Я CTO програмної фірми з великою існуючою кодовою базою (усі C #) та великою інженерною командою. Я бачу, як певні частини коду було б набагато простіше писати у F #, що призводить до більш швидкого часу розробки, меншої кількості помилок, простіших паралельних реалізацій тощо, в основному загального підвищення продуктивності для моєї команди. Однак я також можу побачити кілька підводних ефектів введення F #, а саме:
1) Усі повинні вивчити F #, і це не так банально, як перехід з, скажімо, Java на C #. Члени команди, які не вивчили F #, не зможуть працювати над F # частинами кодової бази.
2) Наразі придатних програмістів F # на даний момент (грудень 2010 р.) Не існує. Шукайте в різних базах даних резюме інженера-програмного забезпечення для "F #", так як менше 1% резюме містять ключове слово.
3) Підтримка громади на сьогодні (грудень 2010 р.) Є менш доступною. Ви можете google майже будь-яку проблему в C # і знайти когось, хто вже вирішив це, не так, як F #. Підтримка сторонніх інструментів (NUnit, Resharper і т.д.) також є схематичною.
Я усвідомлюю, що це трохи Catch-22, тобто якщо такі люди, як я, не використовують F #, спільнота та інструменти ніколи не реалізуються тощо. Але у мене є компанія, яку потрібно запускати, і я можу бути передовим, але не кровоточивий край.
Якісь інші підводні камені я не розглядаю? Або хтось переймається спростуванням підводних каменів? Я думаю, що це важлива дискусія, і я хотів би почути ваші контр-аргументи на цьому публічному форумі, що може зробити багато для збільшення прийняття F # у галузі.