Wątek przeniesiony 2023-06-06 17:15 z C/C++ przez cerrato.

Czemu ludzie piszą takie rzeczy

1

Czemu ludzie zaśmiecają internet takimi wpisami?
"W języku C standardowo jesteśmy ograniczeni do tablic, które w momencie kompilacji muszą mieć zdefiniowany rozmiar. Java w swojej bibliotece standardowej posiada wiele implementacji interfejsów kolekcji np. List, które mogą przyjmować elementy różnych typów. Są to implementacje różnych znanych struktur danych, takich jak lista łączona dwukierunkowa (ang. Linked List) i lista tablicowa (ang. Array List)."

https://programistajava.pl/kolekcje-w-javie/

9

czemu zasmiecasz dział c takimi wpisami? Jaki tu masz problem z c?

3

Zasadniczo co tam jest źle? W C masz albo tablice o znanym rozmiarze, albo o rozmiarze obliczanym na runtime albo udajesz tablicę o zmiennym rozmiarze przy pomocy malloc.

Są w C struktury danych odpowiadajace kolekcjom z Javy czy innego nowożytnego języka?

2
johnny_Be_good napisał(a):

Czemu ludzie zaśmiecają internet takimi wpisami?

Zasada jest prosta, w internecine może pisać każdy.
Wiele osób w tym spora cześć początkujących ma ciśnienie, by po nauczeniu się "Hello World" założyć stronę/bloga/kanał YT na dany temat, który włąśnie poznali.
Po prostu bycie zauważonym jest dla nich wyznacznikiem: sukcesu, mądrości, wiedzy czy co tam im się wydaje.
Efekt jest taki, że jak ktoś normally czegoś się szuka, to zanim znajdzie się coś wartościowego, to trzeba się przebić przez gąszcz nic nie wartych tekstów lub tak błedych, że o ujemnej wartości.

Offtopic: Jak widzę ten wątek, to aż mnie skręca bo odzywa sie we mnie cynik, który chce zapytać o wyjaśnienie "czemu pisze takie rzeczy" konkretnego użytkownika(ów) tego forum.

0

@opiszon:

@less - no to daj przykład takiej tablicy która jest czymś innymi niż podane w moim poście 3 przykłady

Tablica VLA
https://en.wikipedia.org/wiki/Variable-length_array

Moim zdaniem istnienie funkcji malloc też przeczy tezie autora wspomnianego artykułu.

1
less napisał(a):

@opiszon:

@less - no to daj przykład takiej tablicy która jest czymś innymi niż podane w moim poście 3 przykłady

Tablica VLA
https://en.wikipedia.org/wiki/Variable-length_array

Moim zdaniem istnienie funkcji malloc też przeczy tezie autora wspomnianego artykułu.

Od C11 VLA jest opcjonalne - ergo lepiej nie używać

1

Ja bym miał może też uwagę, że przy okazji tego posta można by dodać jakiś wpis regulaminu, aby posty które dają absurdalnie mało kontekstu na temat opinii autora (w szczególności takich co zarysowują opinię, nie dając wyjaśnień), były po prostu niedozwolone, i mogły się kończyć uwagami albo usunięciem wpisu do kosza.

1
johnny_Be_good napisał(a):

Czemu ludzie zaśmiecają internet takimi wpisami?
"W języku C standardowo jesteśmy ograniczeni do tablic, które w momencie kompilacji muszą mieć zdefiniowany rozmiar. ...

op chyba nie wytłumaczył w czym problem. w takim razie niech zgadnę.

wytłuszczony fragment (który jest błędny) oznacza, że można robić tylko kod typu:

void fn1() {
  int numbers[10]; // 10 to stała czasu kompilacji
  // lub
  int * numbers = malloc(10 * sizeof(int));
}

a nie można robić kodu typu:

void fn2() {
  int count = readInt(); // nie chce mi się przypominać jak to się robi w c :)
  int *numbers = malloc(count * sizeof(int));
}

prawdopodobnie zamiast:

W języku C standardowo jesteśmy ograniczeni do tablic, które w momencie kompilacji muszą mieć zdefiniowany rozmiar.

powinno być

W języku C standardowo jesteśmy ograniczeni do tablic, które w momencie utworzenia muszą mieć zdefiniowany rozmiar.

żeby ten wytłuszczony fragment był zgodny z prawdą

p.s.
zakładam, że int * cośtam jest traktowane jak tablica w oryginalnym przytaczanym wpisie z blogu.

p.p.s.
czepiacie się słówek i dorabiacie teorie, a najprawdopodobniej autorowi bloga chodziło o to, że w standardowym (gołym) c (bez dodatkowych bibliotek czy struktur danych) nie ma dostępnego żadnego typu kolekcji (bardzo luźno traktując to określenie), która byłaby dynamicznie rozszerzalna. realloc oczywiście odpada, bo stary wskaźnik idzie się pucować.
sam wpis na przytoczonym blogu też nie jest o c, a o javie. ta źle sformułowana wstawka o c jest mało ważna. programiści c raczej nie będą się uczyć c z jakiegoś przypadkowego kursu javy. podsumowując: mała szkoda, nie ma sensu robić wielkiego szumu o to.

0

Autor bloga miał na myśli prawdopodobnie to, że w C trzeba sobie tę listę czy inną strukturę napisać, a w Javie masz to out of the box. Przynajmniej ja tak wnioskuję z kontekstu całości. Błędem jest stawianie jakiś uwag w odniesieniu do fragmentu wyrwanego z kontekstu.

0

Te artykuły są raczej śmieszne. Stawiam tezę, że zachodzi miks tych sytuacji:

  • artykuły to przeklejki z angielskiego, nie do końca dobrze przetłumaczone
  • autor nie do końca rozumie, o czym pisze
  • autor nie do końca potrafi posługiwać się żargonem technicznym

W rezultacie mamy kwiatki typu: "interfejsy mogą implementować inne interfejsy", "ArrayList oparta jest na tablicy o dynamicznym rozmiarze", "zmienne interfejsowe", ale także i "Główna zaletą JSF jest zmniejszenie potrzebnej pracy podczas tworzenia aplikacji".

Cała strona wygląda natomiast na projekt, którego celem jest skapitalizowanie boomu na programowanie.

0

Jak dla mnie poradnik jest po prostu źle napisany, bo Javy nie porównuje się z C tylko z C++, no ale jak się porównuje jabłka z pomarańczami, to nic dziwnego że któreś będzie miało cieńszą i jadalną skórkę.
Przy kiepsko napisanym poradniku wypadałoby zadać im pytanie za pomocą jakiegoś kontaktu, ale ich strona FB nie wygląda na często czytaną.
Więc zakładam że nikt z tego poradnika nie porówna STL z tym co jest dostępne w JDK.
Bieda po prostu

3
Przebrzydły Kontestator napisał(a):

Jak dla mnie poradnik jest po prostu źle napisany, bo Javy nie porównuje się z C tylko z C++.

Nie, Javę można porównywać wyłącznie z gównem

image

0

mame, a w internecie napisali.

W ogołe mnie ten tekst nie razi.

0
Haskell napisał(a):
Przebrzydły Kontestator napisał(a):

Jak dla mnie poradnik jest po prostu źle napisany, bo Javy nie porównuje się z C tylko z C++.

Nie, Javę można porównywać wyłącznie z gównem

image

Nieprawda, Java jest numerem 1:

Oracle Java is the #1 programming language and development platform. It reduces costs, shortens development timeframes, drives innovation, and improves application services. With millions of developers running more than 60 billion Java Virtual Machines worldwide, Java continues to be the development platform of choice for enterprises and developers.

https://www.oracle.com/java/

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