Wątek przeniesiony 2020-03-12 14:01 z Edukacja przez cerrato.

Kotlin czy Dart?

Odpowiedz Nowy wątek
2020-03-12 13:13

Rejestracja: 3 miesiące temu

Ostatnio: 2 dni temu

0

Witam zastanawiam się który z tych języków jest bardziej przyszłościowy.
Kotlin - natywne aplikacje na Androida
czy może Dart + Flutter i wtedy aplikacje hybrydowe.
Na chłopski rozum, wszystko przemawia za nauką Darta i do tego Flutter.
Po co tworzyć dwa różne kody na IOS i Androida jak da się to zrobić za pomocą jednego.

Jak myślicie, co jest bardziej przyszłościowe?

Pozostało 580 znaków

2020-03-12 13:16

Rejestracja: 5 lat temu

Ostatnio: 1 godzina temu

Lokalizacja: Piwnica

3

To już bez znaczenia...


Mógłbyś trochę bardziej rozwinąć swoją myśl? - lukano bajajakadza 2020-03-12 13:21
Podbijam, czyżby orali androida? - KamilAdam 2020-03-12 13:26
Orają gatunek ludzki... - szweszwe 2020-03-12 13:30
Chyba nie ma drugiego takiego użytkownika tego forum, co by dawał tak bezużyteczne rady:) Nawet mnie ci się udało przebić. - Tomek Pycia 2020-03-12 13:35
Wszystko już bez znaczenia. Trup ściele się gęsto. Ludzie wyginą i tak. - Meini 2020-03-26 20:49

Pozostało 580 znaków

2020-03-12 13:26

Rejestracja: 1 rok temu

Ostatnio: 45 sekund temu

Lokalizacja: Silesia

3
  • Patrząc ogólnie to Kotlin jest bardziej przyszłościowy bo można w nim pisać nie tylko aplikacje na androida
  • Patrząc szczególnie, tylko na androida, to nie mam pojęcia

Pokaż pozostałe 7 komentarzy
"Bo Scala ma opinię języka który ma zagmatwaną składnię." <- a Kotlin nie ma zagmatwanej składni? Kotlin ma przecież składnię Scali - z dokładnością do nazw niektórych słów kluczowych. - Krolik 2020-04-09 16:41
Ale w Kotlinie nie masz eksplozji operatorów oraz implicitów. Zobacz sobie dziwne operatory z biblioteki scalaz opisane w Programowanie Funkcyjne dla Śmiertelników ze Scalaz. |> @@ \/ \/- -\/ |+| |@| <*> <~< >~> ~> - KamilAdam 2020-04-09 16:43
Pisałeś o składni. Teraz piszesz o bibliotekach, na dodatek zewnętrznych. Ktoś stworzył jakąś niszową bibliotekę, w której użył głupich nazw metod, to już od razu winisz język? W Kotlinie też się znajdą biblioteki zewnętrzne ze źle ponazywanymi metodami. Co za różnica czy coś nazwano @@ czy frombricateFooBar - w obu przypadkach musisz doczytać dokuementację. - Krolik 2020-04-09 19:54
Składnia języka Scala pozwala definiować nowe operatory i niestety ludzie to wykorzystują - KamilAdam 2020-04-09 20:17
I dzięki temu kod bywa czytelniejszy. Np. parser combinators. Każda biblioteka wymaga zapoznania się ze słownictwem. Kotlin pozwala definiować nowe metody i niektórzy ludzie to wykorzystują do tworzenia niezrozumiałych metod. Nie widzę różnicy. - Krolik 2020-04-09 20:36

Pozostało 580 znaków

2020-03-12 13:34

Rejestracja: 1 rok temu

Ostatnio: 1 minuta temu

6

Ja bym za bardzo nie wybiegał w przyszłość, tylko zobaczył, co teraz jest bardziej przydatne. W przyszłości wszystko może się odwrócić i nauka nowej technologi to jakieś 2 miesiące, żeby coś sensownego pisać. Ja bym teraz raczej szedł w Kotlina, ale kto to wie, co będzie za rok. Ja już dawno przestałem się uczyć "na zapas" gdyż parę razy życie mnie zaskoczyło i okazało się, że moja nauka była bezużyteczna a czas stracony. I już Heraklit z Efezu wiedział, że jedyną stałą rzeczą w życiu jest zmiana.

Pozostało 580 znaków

2020-03-12 14:28

Rejestracja: 6 lat temu

Ostatnio: 3 godziny temu

1

Warto jedynie zaznaczyć, że Kotlin to nie jest przyszłość. To teraźniejszość. Google zaleca pisanie w nim, a nie w Javie. Wiele zespołów native apps pisze w Kotlinie. Dart i Flutter to jedna wielka niewiadoma...

Pokaż pozostałe 20 komentarzy
a czy Fuchsia z założenia miałą nie być zamknięta na jeden ekosystem/język? - grski 2020-04-02 21:18
Ale jak chciałbyś to zrobić? Przecież można zawsze napisać własny kompilator, który będzie wypluwał poprawny natywny kod dla Fuchsii. Albo jakiś transpilator do Darta. Nie żebym podejrzewał, że Google ma takie plany, ale jakby nie widzę jak mogą to zablokować bez jednoczesnego zamykania się na jakiekolwiek biblioteki i community, co by było strzałem w stopę. - Michał Sikora 2020-04-02 21:23
Już dziś widziałem demo, gdzie ktoś używał Blazora i C# z Flutterem, taki eksperyment - Meini 2020-04-02 21:50

Pozostało 580 znaków

2020-03-27 10:12
Moderator Kariera

Rejestracja: 2 lata temu

Ostatnio: 3 minuty temu

Lokalizacja: Poznań

2

Nie rozumiem, o co Wam chodzi z tym wybieganiem w przyszłość. OK, za pewien czas (być może) wejdzie Fuchsia i Android zostanie zaorany. Teoretycznie (stan na chwilę obecną, jak będzie docelowo to się okaże) Flutter ma być natywnym narzędziem do pisania dla tego nowego systemu. Dlatego - patrząc przyszłościowo, nauka Fluttera i Darta jest dobrym pomysłem.

ALE

we Flutterze można już obecnie pisać pełnowartościowe aplikacje na Androida oraz to paskudztwo z jabłkiem. Dlatego pisząc o teraźniejszości i Kotlinie proszę nie pomijać tego, że Flutter jest najbardziej teraźniejszy, wiele firm dokonuje migracji na niego i nie z powodu możliwego nadejścia Fuchsia, tylko pod kątem bieżących projektów.


Naczelny forumowy hejter Apple

That game of life is hard to play, I'm gonna lose it anyway
The losing card I'll someday lay, So this is all I have to say
Zaraz przyjdzie @Meini i powie ze to i tak nie ważne, bo wszyscy umrzemy. - Tomek Pycia 2020-03-27 10:21

Pozostało 580 znaków

2020-03-29 15:41

Rejestracja: 5 miesięcy temu

Ostatnio: 3 dni temu

0

Wszystko jedno który.


Pozostało 580 znaków

2020-03-29 22:10

Rejestracja: 7 lat temu

Ostatnio: 1 godzina temu

1

@cerrato: Jeśli chodzi o Flutter, brak wsparcie dla 3D i pisanie masy kodu by stworzyć nawet najprostszą aplikację. Ja bym rzucił monetą, który język się uczyć i zabrał się za Kotlina

Pozostało 580 znaków

2020-03-29 22:19
Moderator Kariera

Rejestracja: 2 lata temu

Ostatnio: 3 minuty temu

Lokalizacja: Poznań

0

Ale jak nie robisz gier czy innych multimedialno-rozrywkowych rzeczy, to brak 3D nie przeszkadza w niczym. Apka dla handlowca, katalog części albo komunikator bez problemu pójdzie na Flutterze. Do prostych wizualizacji 3D są dostępne silniki, ale gry na nich nie zrobisz, bo bazują one na samym CPU, nie potrafią korzystać z GPU. Niemniej do pokazani jakiegoś prostego modelu 3D czy niezbyt skomplikowanej animacji to powinno wystarczyć.

Poza tym Flutter na razie się wgryza na rynek, za pewien czas, gdy zdobędzie popularność, wsparcie 3D będzie koniecznością. Zresztą sami o tym piszą na swojej stronie - https://flutter.dev/docs/resources/faq

Today we don’t support for 3D via OpenGL ES or similar. We have long-term plans to expose an optimized 3D API, but right now we’re focused on 2D.


Naczelny forumowy hejter Apple

That game of life is hard to play, I'm gonna lose it anyway
The losing card I'll someday lay, So this is all I have to say
Pokaż pozostałe 5 komentarzy
Brzmi ciekawie. Ale w sumie to od razu mi się nasuwa analogia do WinApi i kolejki komunikatów, która prowadzi nasłuch komunikatów wpadających do aplikacji, a potem "rozdziela" zadania elementom składowym okna. Dobrze kojarzę, czy to jednak działa inaczej? - cerrato 2020-03-30 11:07
BloC działa tak, że wrappujesz kontrolkę albo okno i w ten sposób dane spływają. Bloków możesz mieć wiele i możesz różnie je skonfigurować, np podpinać kilka widżetów lub tylko jeden, jest jeszcze więcej niuansów i możliwości. Tutaj np dość przystępnie jest to wyjaśnione na przykładzie prawdziwej aplikacji: https://www.raywenderlich.com[...]started-with-the-bloc-pattern - Meini 2020-03-30 11:17
Dzięki za link, w wolnej chwili obczaję :) - cerrato 2020-03-30 11:18
To raczej dla zrozumienia zasady, bo w prawdziwych aplikacjach korzystałbym np z tego: https://bloclibrary.dev/#/flutterbloccoreconcepts no ale wiele jest możliwości - Meini 2020-03-30 11:33
BlocBuilder is very similar to StreamBuilder but has a more simple API to reduce the amount of boilerplate code needed - już mi się podoba :D - cerrato 2020-03-30 11:39

Pozostało 580 znaków

2020-03-30 08:51

Rejestracja: 8 miesięcy temu

Ostatnio: 20 godzin temu

2
Dregorio napisał(a):

@cerrato: Jeśli chodzi o Flutter, brak wsparcie dla 3D i pisanie masy kodu by stworzyć nawet najprostszą aplikację. Ja bym rzucił monetą, który język się uczyć i zabrał się za Kotlina

Nie jest to prawda. Jest odwrotnie, to natywne api Androida wymusza pisanie rozwlekłego kodu w wielu klasach i plikach xml. Prosty przykład:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MyAppState();
  }
}

class _MyAppState extends State<MyApp> {
  List<String> _products = ['Laptop'];
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(primarySwatch: Colors.deepPurple),
      home: Scaffold(
        appBar: AppBar(title: Text('Long List App')),
        body: Column(children: [
          Container(
              margin: EdgeInsets.all(10.0),
              child: RaisedButton(
                  color: Theme.of(context).primaryColor,
                  splashColor: Colors.blueGrey,
                  textColor: Colors.white,
                  onPressed: () {
                    setState(() {
                      _products.add('Macbook');
                    });
                  },
                  child: Text('Add Laptops'))),
          Column(
              children: _products
                  .map((element) => Card(
                        child: Column(
                          children: <Widget>[
                            Image.asset('assets/macbook.jpg'),
                            Text(element,
                                style: TextStyle(color: Colors.deepPurple))
                          ],
                        ),
                      ))
                  .toList()),
        ]),
      ),
    );
  }
}

Efekt działania programu:
title

To jest już CAŁY potrzebny kod. Lista z niestandardowymi itemami, załadowana dawnymi z przykładowej kolekcji. Napisz teraz to samo w Kotlinie i niech to będzie krótsze i bardziej zwięzłe.

Jeszcze zabawniej się zrobi, jak dodamy tu jakieś rzeczy, które mają wykonywać się asynchronicznie. Albo jakieś niestandardowe kontrolki, np niech obrazek będzie przycięty do kształtu okręgu. To Kotlin daje trochę lukru składniowego w porównaniu z Javą, ale dalej to jest rozwlekłe api Androida

edytowany 3x, ostatnio: cerrato, 2020-03-30 10:16
Pewnie, a teraz zrób to bardziej customowalne. Takiej apki nie oddasz klientowi XD - Dregorio 2020-03-30 08:56
A co to znaczy "bardziej customowalne". Aaa no tak, trzeba by tu wepchnąć Daggera. Bo wszędzie trzeba 😛 na potrzeby tego przykładu, zrób tak samo niecustomowalne, ale mniej rozwlekłe. Bo Kotlin mniej rozwlekły jest - Meini 2020-03-30 08:58
Nie, to jest przykład z tutoriala, nigdy na produkcji nie zobaczysz takiego kodu. Widziałem kod produkcyjny jednego i 2. Sorry, ale Java/Kotlin dla mnie wygrywa jesli chodzi o czytelność i zwięzłość - Dregorio 2020-03-30 09:02
Może i dla ciebie wygrywa, szkoda tylko że nie uzasadniłeś dlaczego. A może to jest tak, że przyzwyczajenia biorą górę. Daj bardziej zwięzły, analogiczny przykład w Kotlinie. Też tylko przykład, a nie kod produkcyjnej aplikacji - Meini 2020-03-30 09:04
Mam ci wklejać kod produkcyjny? Jak wrzucisz przykład z tutoriala to wszystko wyglada super. Ty nie dałeś też argumentu, a na pewno nie jest nim ten kod. Jak dla mnie możesz nawet gołą dupą na śniegu siedzieć jak tylko tak lubisz, wolny kraj - Dregorio 2020-03-30 09:06
Nie, pokaż na przykładzie, gdzie jest lepsza custinizacja i zwięzłość. Uzasadnij swoje zdanie, bo tak to można dyskutować bez końca. To, co ja tu podałem też można poukładać inaczej, w przypadku Androida natywnego to nie Kotlin jest problemem (bo to dobry język), a syfiaste api natywnego Androida, nawet lukier składniowy Kotlina wszystkiemu nie zaradzi - Meini 2020-03-30 09:08

Pozostało 580 znaków

V-2
2020-04-09 12:20
V-2

Rejestracja: 3 lata temu

Ostatnio: 1 tydzień temu

1
Meini napisał(a):

To jest już CAŁY potrzebny kod. Lista z niestandardowymi itemami, załadowana dawnymi z przykładowej kolekcji. Napisz teraz to samo w Kotlinie i niech to będzie krótsze i bardziej zwięzłe.

Tak jak napisałeś, to kwestia SDK Androida, a nie Kotlina jako języka. A SDK się zmienia - nadchodzi Jetpack Compose, który też pozwoli na tworzenie UI w formie deklaratywnego kodu; czyli w podobnym stylu jak te wszystkie Fluttery, Reacty itd. Obecnie w fazie Developer Preview.


Nie ma najmniejszego powodu, aby w CV pisać "email" przed swoim adresem mailowym, "imię i nazwisko" przed imieniem i nazwiskiem" ani "zdjęcie mojej głowy od przedniej strony" obok ewentualnego zdjęcia.

W drugiej firmie której już pracuję mam palących marihuanę programistów [...] piszą kod "leniwie", często nie wysilając się, rozwlekając ten kod, unikając np. programowania funkcyjnego (mówię tutaj o lambdach w javie).
edytowany 1x, ostatnio: V-2, 2020-04-09 12:21

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0