F# - interesuje się ktoś tym?

F# - interesuje się ktoś tym?
Sceptyczny Dinozaur
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:390
0

Dlaczego to takie niepopularne na tym forum? Wyszukiwarka zwraca 1 (?) wynik, po tagach raptem 2 tematy; w sumie kilka postów. Czy ten język jest taki zły / niszowy / nie nadaje się do niczego / nikt nie pisze w nim w PL (nawet hobbystycznie) / trudny / źle zaprojektowany... etc. ?

Niby można znaleźć w internecie artykuły na ten temat, ale zastanawiam się czy to nie jest tylko i wyłącznie takie "akademickie blablanie" entuzjastów.
Co wy jako praktycy sądzicie o tym języku i jego możliwych zastosowaniach ?

hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:10 dni
2

Ja widzę parę powodów:

  1. To jest język dla dość wąskiego grona odbiorców, a mianowicie ludzi piszących w C#, którzy chcą pisać funkcyjnie. A z racji, że .NET to raczej korporacje, to nie ma tam zbyt dużo parcia na zmianę języka na język dla CS. Lepiej mieć "prostszy" dla ludzi język jakim jest C#.
  2. Do niedawna był to język tylko na Windowsy.
  3. MLe nigdy nie były specjalnie mocno popularne.
  4. Ludzie, którzy piszą w F# raczej będą siedzieć na specjalistycznych forach oraz nie będą mieli za dużo problemów do dyskutowania tutaj.

teez
"Ludzie, którzy piszą w F# raczej będą siedzieć na specjalistycznych forach oraz nie będą mieli za dużo problemów do dyskutowania tutaj." Najpierw się roześmiałem, a później zrozumiałem jakie to jest prawdziwe :D
Sceptyczny Dinozaur
to 4programmers.net nie jest "specjalistycznym forem" ? :D
hauleth
@Sceptyczny Dinozaur dla ludzi używających F# zapewne miejscem wymiany informacji i wiedzy byłaby grupa mailingowa. Ogólnie sprawdź sobie ile masz ogólnie wątków dotyczących języków funkcyjnych, a ile z tego to ogólnie MLe.
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
2

F# jest komercyjnie mało popularny, tak samo jak Haskell czy OCaml. W sumie niewiele jest języków funkcyjnych które mają wzięcie, do głowy przychodzi mi tylko Erlang, Scala i Clojure, ale nawet one mają ułamek rynku. A skoro softu w tym malo to i mało koderów a tym samym informacji w internetach.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
02
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 8 lat
  • Postów:1176
2

Ja sobie dlubie po pracy w F#. Dobre polaczenie funkcyjnych ficzerow z pragmatyzmem platformy .NET. Na pewno lepszy od typowo akademickich jezykow funkcyjnych typu OCaml/Haskell (przynajmniej w kontekscie pisania aplikacji na produkcje).
Rynku raczej nie podbije jak najprawdopodobniej zaden inny jezyk funkcyjny. Moze uda mi sie go przepchnac do frameworka testowego w pracy (jako ze czesc z niego jest w C#). Zobaczymy czy sie uda.
Jezeli chodzi o poziom trudnosci to nie jest to trudny jezyk. Mysle ze najwiecej trudnosci wynika z przestawiania sie z paradygmatu imeratywnego na funkcyjny.

edytowany 3x, ostatnio: 0x200x20
PI
Scala jest bardziej popularna niż F# i tak już pozostanie.
02
Punks not dead
MF
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
1

Ja się interesuje F# i to coraz bardziej :-) Duża ilość kodu Windows Azure to F#. W Polsce jedna z największych firm IT wykorzystuje F# do ETL'a + Data Miningu + wizualizacji danych (wizualizacja oparta na FSLab) w jednym z duuuużych systemów. Wychodzi ostatnio więcej publikacji na ten temat (nawet po polsku ukazała się świetna "Expert F# 4.0, 4th Edition" w Helionie). Moim zdaniem to jeden z najbardziej dopracowanych i przeznaczonych stricte do przemysłu języków, a rosnąca jakość Mono (Xamarin który rozwija Mono to teraz spółka-córka Microsoftu), już powoduje wzrost zainteresowania społeczności open source (frameworki, w tym genialny Websharper czy Suave.IO, edytory jak Atom+Ionide, doskonałe wsparcie dla baz obiektowych czy data miningu itp itd). Poza tym ilość i jakość materiałów szkoleniowych/podcastów/publikacji po prostu wymiata. To nie jest "akademicka nisza" jak Haskell ;)

MZ

edytowany 1x, ostatnio: MarekFalz
0

Raczej nie zdobędzie szerokiej popularności. Język który może przebić Jave i C# musi być przede wszystkim od nich łatwiejszy do nauki, a języki funkcyjne są dość trudne na początek. Musi też być szybszy i wydajniejszy od i trochę szybszy, aby korporacje zrezygnowały z Javy, jak kiedyś z C++ na rzecz Javy. Na razie nie powstała dobra alternatywa dla C# i Javy, są albo trudniejsze od nich lub powolniejsze. Może Go lang trochę podchodzi pod taki język, bo Rust to nie.

MF
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0
Czarny Pomidor napisał(a):

Raczej nie zdobędzie szerokiej popularności. Język który może przebić Jave i C# musi być przede wszystkim od nich łatwiejszy do nauki, a języki funkcyjne są dość trudne na początek. Musi też być szybszy i wydajniejszy od i trochę szybszy, aby korporacje zrezygnowały z Javy, jak kiedyś z C++ na rzecz Javy. Na razie nie powstała dobra alternatywa dla C# i Javy, są albo trudniejsze od nich lub powolniejsze. Może Go lang trochę podchodzi pod taki język, bo Rust to nie.

Nie rozumiesz. F# nie ma "zastąpić" Javy czy C# - tylko być ważnym dodatkiem do rzeczy, które w takiej Javie programuje się niewygodnie i kulawo - czyli programowanie współbieżne, wydajne skalowanie, mechanizmy map-reduce przy big data, wspomniany data mining, zaawansowane silniki reguł (nie takie proste jak drools), czy BARDZO zaawansowany pattern maching.... To wszystko daje się o niebo łatwiej impelmentować i skalować w językach które są funkcyjne - a plusem F# jest to, że jest dobrze przemyślany i łatwiejszy do opanowania niż "pure functional Haskell". Nie mówiąc o tym, że "z pudełka" masz dostęp do wszystkich bibliotek .NET (więc tego, z czego korzysta C#). Stąd takiej popularności jak Java/C# nie zdobędzie, ale bardzo ważną niszę IMHO wypełni i to lepiej niż błędogenna Scala ze swoimi "implicit" (kto próbował debugować duże rzeczy w Scali wie o czym piszę), czy akademickie niszowe języki funkcyjne. Kasa jaką wkłada Microsoft w F# jest potężna i ma być to język nie tyle ogólnego zastosowania (chociaż też można go tak użyć, bo wygodnie się w nim programuje nawet obiektowo czy imperatywnie i ma dostęp do wszystkch bibliotek GUI dla .NET i Mono), tylko do szczególnych zadań.

A wracając jeszcze do "przebijania C# i Javy", to dzisiaj na rynku, przy wyborze jakiegokolwiek języka przez firmę X, kluczowe znaczenie ma ekosystem, biblioteki i wsparcie dużych firm. Ma to większe znaczenie niż wydajność czy szybkość, a nawet prostota implementacji. Stąd zupełnie nowy język ma nikłe szanse, ale język który działa na JVM, albo .NET i ma "z pudełka" dostęp do wszystkich bibliotek i ma wsparcie Google'a/Microsoftu/Oracle'a (w tym szkolenia, support) itp - to zupełnie inna bajka. Dlatego duża firma IT z którą współpracuje używa F# i raczej nigdy nie spojrzy na Haskella, czy OCamla.

MZ

edytowany 2x, ostatnio: MarekFalz
0

Ale Google to duża firma i może wypromować Go, oraz stworzyć do niego dobre narzędzia czy całą otoczkę. Backend i rynek mobilny(Android) jest w zasięgu Go.

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

W pewnych kręgach F# jest stosowany - było nawet na tym forum.
Ale ogólnie jest to bardzo niszowy język - o wiele częściej słyszę o Haskelu czy Erlang / Elixir.

F# do data miningu? To chyba dla fascynatów tego języka, Python, R czy Java pewnie prześcigają F# w popularności w tej dziedzinie już na rozbiegu.

Statystyka z dziś z Googla:
F# data mining: 101 000 wyników
C# data mining: 647 000 wyników
Python data mining: 1 100 000 wyników
java data mining: 1 500 000 wyników
R data mining: 69 600 000 wyników

edytowany 1x, ostatnio: vpiotr
hauleth
Ja bym jeszcze dorzucił "Julia data mining: 1 190 000"
vpiotr
@winerfresh: idzie do przodu jak burza
LG
LG
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 5 lat
0

Wiem, że pewien bank ze swoim działem it/analitycznym używa f# dla analiz etc.

MF
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
1
vpiotr napisał(a):

W pewnych kręgach F# jest stosowany - było nawet na tym forum.
Ale ogólnie jest to bardzo niszowy język - o wiele częściej słyszę o Haskelu czy Erlang / Elixir.

To że nie słychać o F# na forach, nie znaczy że nie jest stosowany tu i ówdzie w przemyśle ;) Ja mówię
tutaj akturat o rozwiązaniach dużych firm, bo w takich albo pracowałem, albo z takimi obecnie (jako kontraktowiec)
współpracuje.

F# do data miningu? To chyba dla fascynatów tego języka, Python, R czy Java pewnie prześcigają F# w popularności w tej dziedzinie już na rozbiegu.

Gdybyś wiedział o jak dużym systemie piszę i dla jakiego klienta był tworzony (a obecnie jest utrzymywany i rozwijany), pewnie nie użyłbyś określenia "fascynaci języka" :)
Dzisiaj na rynku język i technologię dobiera się na potrzeby danego problemu, a nie odwrotnie - a soft za który klient płaci grube miliony i który ma
8-letni okres gwarancji, ma działać wg restrykcyjnych wymagań i spełniać SLA, przecież nie jest robiony na zasadzie "weźmy język X, do Stasio mówił że to fajny język". Moduł do ETL'a i data miningu wytworzony w F# obsługuje w tym systemie (reszta jest w Java EE) specyficzną hurtownie danych w architelturze MOLAP, gdzie po testach pilotażowych z Javą i komercyjnymi bibliotekami do ETL'a / data miningu - po prostu Java okazała się słabo wydajna a kod kosmicznie skomplikowany i "nie utrzymywalny". Głównie chodziło o złożone przetwarzanie i buforowanie bardzo skomplikowanych struktur zasilanych do hurtowni i później bardzo złożone, równoległe zapytania (z mocno wyżyłowanym 'queries per minute'). F# ze swoim Async.Parallel i mechanizmem agentów (bardzo wydajna współbieżność wykorzystująca przekazywanie komunikatów) - okazał się wygodniejszy, szybszy, a kod kilkanaście razy krótszy niż nieoptymalny odpowiednik w Javie...

A Python??? :)) Python ze swoją "wydajnością" to do zaawansowanego ETL (przewalającego po 800 GB danych do jednej kostki MOLAP) i data miningu nadaje się jak Bash do tworzenia sieci neuronowych :D

Decyzja o zastosowaniu F# była podjęta przez PM'a po kilkumiesięcznych testach, ewaluacji, rozmowach z firmą, która robiła w F# podobne rozwiązanie itd...

Statystyka z dziś z Googla:
F# data mining: 101 000 wyników
C# data mining: 647 000 wyników
Python data mining: 1 100 000 wyników
java data mining: 1 500 000 wyników
R data mining: 69 600 000 wyników

Błagam :-) Wyniki z Google nie świadczą jeszcze o stosowaniu pewnych technologii w krytycznych rozwiązaniach :-) Ja nie piszę o startupach, czy ilości projektów i projekcików na githubie przecież, ani o tym co jest popularne na StackOverflow. Dam Ci taki przykład. W poprzedniej firmie, w której ja odpowiadałem za kawałki związane z Dockerem, duży zespół "wojował" z bardzo skomplikowanym silnikiem reguł, który "gadał" z resztą systemu poprzez webserwisy. Reguły były tak złożone, że ani Jess, ani Droolsy, ani żadne CLIPSy nie nadawały się do tego nawet w 10%. Co więcej reguły musiały kontrolować kilkuetapowy, zautomatyzowany proces przetwarzania dużych komunikatów z dziesiątkami załączników.. No i koniec końców NAJLEPSZY w tym zastosowaniu okazał się komercyjny (i genialnie skalowalny) Sicstus Prolog z mechanizmam CLP (Constraint Logic Programming). Nawet nie będę wspominał o tym ILE zarabiali programiści Prologa którzy zbudowali to rozwiązanie versus np. starsi projektanci Javy w tym samym projekcie :) Żeby było ciekawiej rozwiązanie okazało się tak dobre i wydajne - że ci sami kolesie (wcześniej podkupieni przez moją firmę) rozwijają coś podobnego w kolejnym projekcie (tyle że to już projekt NATO'wski i nieco inna domena biznesowa).

Tymczasem jak wpiszesz w google Prolog, albo sprawdzisz popularność Prologa w porównaniu z Javą, to jak sądzisz? Jakie otrzymasz wyniki? ;-)

MZ

edytowany 3x, ostatnio: MarekFalz
hauleth
Mimo wszystko stawiam diamenty przeciw wieprzom, że R jest w tej dziedzinie zdecydowanie popularniejszy, nie ważne jak duży system i dla kogo piszesz. R jest w dziedzinie DM niepodzielnym królem jak lew jest królem dżungli.
vpiotr
Tym Prologiem tylko potwierdzasz to co napisałem. Niszowy język do niszowych zastosowań. Wielkość projektu ani wysokość zarobków w projekcie nie mają tu znaczenia.
T9
Lwy nie żyją w dżungli ;)
0
vpiotr napisał(a):

R data mining: 69 600 000 wyników

b data mining Około 69 700 000 wyników
d data mining Około 67 800 000 wyników
y data mining Około 32 500 000 wyników

Raczej mało miarodajne.

hauleth
Porównaj sobie parę pierwszych wyników dla każdego z tych wyszukiwań ;)
hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:10 dni
0

@MarekFalz: może i F# używa się w DM, ale to jest bardzo mocno niszowy język, nawet w tej niszowej dziedzinie. Język ten został pomyślany jako MLowa nakładka na .NET a nie język do obliczeń statystycznych. By zaobrazować Ci jak bardzo R jest popularny w dziedzinie statystyki to masz parę linków:

Skoro nawet SAP ma natywną integrację z R (który nie jest przez nich kontrolowany) to wiedz, że coś jest na rzeczy.


vpiotr
Ba, Microsoft już dawno się "zakochał" w R (SQL Server, Visual Studio): https://www.visualstudio.com/pl/vs/rtvs/
hauleth
Żeby nie było, F# to fajny język, ale twierdzenie, że jest popularny w DM jest modzno [sic] na wyrost. F# ma swoje zastosowania (z tego co widzę jest całkiem popularny jako platforma do pisania testów dla .NET), ale nie wróżę mu wielkiej przyszłości, może się mylę (nawet fajnie by było), ale nie sądzę.
katelx
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Hong Kong
1

@MarekFalz daruj sobie to gadanie o szybkosci, bo to fanbojstwo i tyle :). o ile f# czy ocaml sa sporadycznie uzywane do projektow gdzie liczy sie low latency/throughput, to jednak znacznie ustepuja javie wlasnie ze wzgledu na wydajnosc kodu.
wbrew temu co sugerujesz python jest uzywany do jak to nazywasz 'zaawansowanego etl' i data miningu, no ale pewnie quanci w goldman sachs czy merill lynch sie nie znaja i/lub lubia wyrzucac pieniadze w bloto zamiast po prostu uzyc f# :)

co do pytania OP to imo (bazujac na moim dosw z paru projektow/porownujac do innych jezykow funkcyjnych):

  • nie jest zly ;)
  • jest niszowy
  • nadaje sie do wielu roznych zastosowan ale czy bardziej niz konkurencja to juz dyskusyjne
  • pewnie 99% dev to hobbysci ale slyszalam o zastosowaniach komercyjnych w pl
  • nie jest trudny do nauki (imo duzo latwiejszy od haskella czy erlanga, zwlaszcza dla cekratkowcow)
  • sam jezyk nie jest zle zaprojektowany ale jest pare kompromisow zwiazanych z koniecznoscia integracji z istniejaca platforma .net + wsparcie w VS pozostawia wiele do zyczenia

mysle ze wielu wypadkach jest to (jak to trafnie nazwales) 'blablanie' fanow, jednak imo warto sie nauczyc i troche popisac bo zwieksza to horyzonty i moze dac troche frajdy komus znudzonemu c# (nie tracac zalet .neta)

MF
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0
katelx napisał(a):

@MarekFalz daruj sobie to gadanie o szybkosci, bo to fanbojstwo i tyle :). o ile f# czy ocaml sa sporadycznie uzywane do projektow gdzie liczy sie low latency/throughput, to jednak znacznie ustepuja javie wlasnie ze wzgledu na wydajnosc kodu.

Szybkość wynikała z tego, że duży moduł napisany w F#, poprzez to,  że napisany (i zaprojektowany) został funkcyjnie, po prostu o wiele lepiej dał się wyskalować i zrównoleglić, a mechanizmy już dostępne w języku pozwoliły na wygodniejsze przetwarzanie skomplikowanych struktur danych, przy mniejszej ilości kodu niż w Javie. Do tego wsparcie i support Microsoftu też odegrał swoją rolę. To nie była MOJA decyzja, a ja nie jestem żadnym fanbojem :) Jeśli Twoim zdaniem system za 80 baniek, dla sektora publicznego tworzą "fanboje", którzy sobie wybrali w tym kawałku F#, bo był bardziej "hipsterski" niż Python czy Java, to nie trafiłaś. Ta decyzja była mocno przemyślana i wpłynęło na nią kilka czynników biznesowych, a nie "gust jakiegoś fanboja". Ja się nie kłócę o to CO jest lepsze, bo na wybór technologii wpływa wiele specyficznych czynników. Ja napisałem że są miejsca, gdzie do krytycznych rzeczy używa się F# i stosuje je np. firma, która obecnie jest chyba największą firmą IT w Polsce, jest spółką akcyjną i nie kieruje się gustem "fanboja" czy "fascynata".

katelx
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Hong Kong
0

nie oceniam decyzji a jedynie wzmianki o szybkosci. nie watpie ze decyzja byla przemyslana (i przegadana), natomiast wzmianka o sektorze publicznym nie zwieksza szansy ze byla to decyzja najbardziej oplacalna ;)
mysle ze to bardzo pozytywna rzecz ze tworzone sa duze projekty w jezykach duzo ciekawszych niz java, niemniej uwazam ze o jakosci projektu bardziej decyduja umiejetnosci zespolu niz wybrana technologia. gdyby zamiast tych swietnie oplaconych programistow f# zebrac paru swietnych javowcow (czy coraz bardziej popularnych scalowcow) to czy efekt bylby gorszy? no ok - supportu microsoftu by to nie dostalo :)

MF
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0
winerfresh napisał(a):

Język ten został pomyślany jako MLowa nakładka na .NET a nie język do obliczeń statystycznych.

Język ten bazuje na składni OCaml'a i pewnych mechanizmach z Haskella, ale jeśli twierdzisz że to "MLowa nakładka" na .NET
to z całym szacunkiem, nie wiesz o czym piszesz :) Poczytaj o tym jak ostatnie wersje .NET Core są optymalizowane pod
funkcyjne mechanizmy, rekurencję ogonową itd i dlaczego tyle kasy pompuje M$ w F# Foundation i specjalizowane biblioteki.

Co do języka R, to język do obliczeń statystycznych/wizualizacji i ewentualnie data miningu już uporządkowanych struktur. Nie napiszesz w tym skomplikowanego i rozbudowanego modułu ETL, który przeparsuje setki gigabajtów danych z różnych źródeł, obsłuży po drodze cache'owanie i współbieżnie załaduje do kostek MOLAP.
SAP używa R do zupełnie innych rzeczy...

hauleth
"Język ten bazuje na składni OCaml'a", to gdzie się rozminąłem z tym MLem? Może i .NET jest optymalizowany pod względem programowania funkcyjnego, ale nie sądzę, by było to głównie z powodu F#, już bardziej z powodu, że C# się stara wprowadzić bardziej funkcyjne mechanizmy.
MF
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0

Nie chodziło mi o ML'a, tylko o tę "nakładkę" :-) F# to nie ma być wyłącznie "wsparcie dla C#" i nie jest to żadna "nakładka" (chyba że C# nazwiesz "javopodobną nakładką na .NET"). No chyba że decydenci w Microsoft i F# Foundation wygadują głupoty i wywalają miliony w błoto ;)

katelx
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Hong Kong
0

ale c# to jest flagowy jezyk .neta, f# to wlasnie taki plugin, dohackowany pozniej :) to ze ma stosunkowo dobre wsparcie i jest rozwijany przez wielkie korpo nie zmienia faktu ze jest raczej 'przyprawa' niz glownym graczem.

MF
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0
katelx napisał(a):

niemniej uwazam ze o jakosci projektu bardziej decyduja umiejetnosci zespolu niz wybrana technologia. gdyby zamiast tych swietnie oplaconych programistow f# zebrac paru swietnych javowcow (czy coraz bardziej popularnych scalowcow) to czy efekt bylby gorszy? no ok - supportu microsoftu by to nie dostalo :)

Uwierz mi, że firma o której pisze, świetnych javowców i starszych projektantów Java EE z ogromnym doświadczeniem ma na pęczki. Tym bardziej że specjalizuje się głównie w technologiach javowych i robi systemy nie tylko na polski rynek (pewnie i tak każdy już wie o jakiej firmie mowa ;)) Ma też tak duży budżet, że może sobie pozwolić na pewne "ryzyka projektowe", które jeśli się sprawdzą i okażą się wygodniejsze w użyciu i utrzymaniu kodu, są stosowane dalej (przykład z niszowym Prologiem, który okazał się w pewnej wąskiej działce lepszy i wydajniejszy to potwierdza. Firmie opłaciło się nawet wykupić kosmicznie drogi support Sicstusa, mimo że z tego co mi wiadomo okazał się zupełnie zbędny w "prologowej" działce...

Ja osobiście mam obiekcje co do języków z mieszanym paradygmatem (Scala, F#, Clojure), bo wiem, że w równym stopniu mogą pomóc, jak i zaszkodzić w dużych projektach, gdzie programiści są na różnym poziomie (siłą rzeczy) i często błąd trzeba naprawić "na wczoraj", ale również doceniam to, co można dzięki takiej zmianie osiągnąć. No i super, że na "naszym polskim podwórku" stosuje się również trochę ciekawych rozwiązań, także w projektach większej skali. Pamiętam jakie wrażenie zrobił na mnie sposób pracy z kodem wspomnianych prologowców od Sicstusa :D Używali SPIDER'a (takie IDE oparte na Eclipsie). Debagowali i trace'owali "w locie" tak "kosmiczne" heurystyki przeszukiwań "z nawrotami" dużych struktur danych, że można było szczękę zostawić na podłodze ;) Człowiek uczy się całe życie, a każda nowa technologia i nowy paradygmat "wzbogaca" spojrzenie na problem...

MF
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0
katelx napisał(a):

ale c# to jest flagowy jezyk .neta, f# to wlasnie taki plugin, dohackowany pozniej :) to ze ma stosunkowo dobre wsparcie i jest rozwijany przez wielkie korpo nie zmienia faktu ze jest raczej 'przyprawa' niz glownym graczem.

No właśnie z informacji od ludzi z MS, wynika, że podejście do F# zmieniło się diametralnie po zmianie prezesa i wierchuszki na górze :)
Stąd otworzyli źródła F# i Visual F#, stąd założona fundacja F#, stąd dofinansowanie Websharpera i FSlab oraz przepisanie kilku dużych kawałków Windows Azure z
C# na F# , stąd szereg dużych szkoleń z F#, które MS reklamuje wśród swoich partnerów itp itd. Czas pokaże jak się ukształtuje rynek i jaką niszę zajmie w niej
F#.

MZ

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
1

To dobrze, że język się rozwija, tymczasem na indeed.com 4 oferty w Warszawie:

https://pl.indeed.com/praca?q=F%23&l=Warszawa%2C+mazowieckie

Z czego 2 oferty dla powiedzmy programistów,
z tych dwóch jedna jest taka:
"Software development in R and on occasions other languages (Excel/VBA, C++, C#/F#, scripting languages, etc.)"
a druga taka:
"Expertise in Clojure (or C# and F#) and a good working knowledge of a scripting language such as Groovy, Python, JavaScript, etc."

Czy można o F# myśleć jak o języku niszowym (typu C++, Delphi, PowerBuilder, ActionScript) czy raczej jak o języku DSL do konkretnych produktów to już zostawiam każdemu do decyzji.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)