paint-brush
ቀዳማይ ቋንቋ ፕሮግራሚንግካ ብዛዕባ ኮድ ከመይ ከም እትሓስብ ዓቢ ጽልዋ ኣለዎ።@nfrankel
317 ንባባት
317 ንባባት

ቀዳማይ ቋንቋ ፕሮግራሚንግካ ብዛዕባ ኮድ ከመይ ከም እትሓስብ ዓቢ ጽልዋ ኣለዎ።

Nicolas Fränkel6m2025/02/02
Read on Terminal Reader

ኣዝዩ ነዊሕ፤ ንምንባብ

ኣብ ነገራት ዝቐንዐ ፕሮግራሚንግ፡ ውርሻን ንኡስ ምጽሓፍን ከከምቲ እትመሃሮ ቀዳማይ ቋንቋ፡ ናብ ካልኦት ቋንቋታት ዘይትርጎም ፍሉይ ትርጉማት ክህልዎም ይኽእል።
featured image - ቀዳማይ ቋንቋ ፕሮግራሚንግካ ብዛዕባ ኮድ ከመይ ከም እትሓስብ ዓቢ ጽልዋ ኣለዎ።
Nicolas Fränkel HackerNoon profile picture


ጃቫ ኣብ ሞያይ ዝተማሃርክዎ ናይ መጀመርታ ቋንቋ እዩ። ኣቃውምኡ ኣብተን ቀዳሞት ዓመታት ንኣምር ፕሮግራሚንግ ኣብ ምርዳእ ዝነበርኩሉ እዋን መሰረታዊ እዩ። ካልኦት ሓያሎ ቋንቋታት ኣዝዩ ዝተፈላለየ ኣቀራርባ ዘለዎም ድሕሪ ምሕላፈይ፡ ኣረኣእያይ ኣስፊሐዮ ኣለኹ። ሎሚ፡ ብዛዕባ ውርሻ ዝብል ሓሳብ ከስተንትነሉ ደልየ ኣለኹ .

ውርሻ ኣብ ጃቫ

ኣብ ጃቫ፡ ሓሳብ ውርሻ ምስቲ ንኡስ ምጽሓፍ ዝብል ኣምር ብጽኑዕ ዝተኣሳሰር እዩ። ንኡስ ምጽሓፍ ምትግባር ናይ IS A ዝምድና እዩ። ንኣብነት ክፍሊ Rabbit ንኡስ ዓይነት ናይ Mammal ክፍሊ እዩ። ካብዚ ንደሓር፡ ሓደ Rabbit ኢንስታንስ ኩሉ ባህርያት ናይ ሓደ Mammal ኣለዎ : ነቲ ባህሪ ይወርሶ።


በዚ ምኽንያት ድማ ሓደ ሜላ Mammal መለክዒ ክጽውዕ ከሎ Rabbit ኢንስታንስ ክትሓልፍ ትኽእል ወይ ድማ ሓደ ሜላ ሪተርን ዓይነት Mammal ክኸውን ከሎ Rabbit ኢንስታንስ ክትመልስ ትኽእል። ጃቫ፡ .ኔት ወይ ብርሑቕ ተመሳሳሊ ዝኾነ ነገር ተማሂርካ እንተኾንካ፡ ውርሻ ከምኡ ኢኻ ትርእዮ፡ እቲ ሓድሽ ንቡር ድማ ይኸውን።


ግሉጽ ውርሻ ’ ዩ።


 class Animal { void feed(); } class Rabbit extends Animal { //1 }
  1. ምኽንያቱ Rabbit IS A Animal , feed()

ውርሻ ኣብ ጎ

መጀመርታ ንጎ ምስ ረኣኹዋ፡ ገና ውርሻ እናሃበት ንኡስ ምጽሓፍ ዘይምህላዋ ኣገሪሙኒ። Go ንኣንጭዋ ምጽሓፍ ይጥቀም፤


ኣንጭዋ ትመስል፡ ከም ኣንጭዋ ትሕንብስ፡ ከም ኣንጭዋ ድማ ትሕንክስ እንተኾይና፡ ምናልባት ከምኡ ክትከውን ትኽእል እያ።


ሓደ Go struct ከም መተሓላለፊ ተመሳሳሊ ተግባራት እንተድኣ ኣተግቢሩ ፡ ብዘይተሓበረ መንገዲ ነቲ መተሓላለፊ የተግብሮ


 type Animal interface { feed() //1 } type Rabbit struct { } func (rabbit Rabbit) feed() { //2 // feeds }
  1. ሓደ Animal ክምገብ ይኽእል እዩ።
  2. ንሓደ Rabbit ከም መለክዒ ዝወስድ feed() function ስለዘሎ Rabbit Animal የተግብር


ንጎ ብናይ ጌጋ ኣተሓሕዛ ኣቀራርባኣ ኣይፈትዎን እየ፡ ብዛዕባ ስዉር ኣተገባብራ ግን ክልተ ኣተሓሳስባ ነይሩኒ። ብሓደ ወገን ሓድሽ ኣምር ምዃኑ ተረዲኡኒ፣ ክፉት ኣእምሮ ክኸውን ድማ ፈቲነ፤ ብኻልእ ወገን ድማ ነገራት ኩሉ ግዜ ካብ ስዉር ንላዕሊ ብግልጺ ዝሓሸ ይመስለኒ፡ እንተስ ኣብ ምምዕባል ሶፍትዌር ይኹን ኣብ ሓቀኛ ህይወት።

ውርሻ ኣብ ፓይቶን።

ፓይቶን ንውርሻ ብዝምልከት ዝፈልጦ ዝያዳ መሳጢ ቋንቋ እዩ።


ንኡስ ዓይነትን ዓይነት መሰረት ዝገበረ ውርሻን ኣብ ፓይቶን ካብ ዝምስረት ኣትሒዙ ጸኒሑ እዩ።


 class Animal: def feed(self): #1 pass #2 class Rabbit(Animal): #3 pass
  1. ሓደ Animal ክምገብ ይኽእል እዩ።
  2. ኣብ ፓይቶን ኣብስትራክት ክላስ ወይ ኢንተርፌስ የለን ክላስ ጥራይ እዩ።
  3. ምኽንያቱ Rabbit IS A Animal , feed()


ኣብዚ መዳይ ፓይቶን ብመንጽር ውርሻ ከም ጃቫ እዩ ዝሰርሕ። ፓይቶን ኣንጭዋ ምጽሓፍ እውን የቕርብ እዩ፣ እዚ ድማ ከም ማጂክ ሜላታት ገሊጸዮ . ንኣብነት ንሓደ ነገር ተደጋጋሚ ንምግባር ፣ ንኣብነትተደጋጋሚ ክመልስ ዝኽእል ፣ __iter__()__next__() ን ጥራይ ኢኻ ከተተግብር ዘለካ :


 class SingleValueIterable(): done = False def __init__(self, value): self.value = value def __iter__(self): #1 return self def __next__(self): #1 if self.done: raise StopIteration else: self.done = True return self.value svi = SingleValueIterable(5) sviter = iter(svi) #2 for x in sviter: print(x) #3
  1. ኣገባብ ምጽሓፍ ኣንጭዋ
  2. Iterator ምፍጣር - ፓይቶን ከመይ ከም ዝገብር ይፈልጥ እዩ ካብ ንሕና ኣብ ላዕሊ ዝተጠቕሱ ሜላታት ካብ ምትግባር ኣትሒዝና።
  3. ሕትመት 5


ናይዚ ናይ ኣንጭዋ ምጽሓፍ ኣገባብ ጸገም፡ ንናይ ፓይቶን ኣቐዲሙ ዝተነጸረ ናይ ስሕበት ሜላታት ጥራይ ዝሰርሕ ምዃኑ እዩ። ሳልሳይ ኣካል ብዘይተሓበረ መንገዲ ክወርሶ ዝኽእል ክፍሊ ክትህብ እንተደሊኻኸ?


 class Animal: def feed(): pass class Rabbit: def feed(): pass


ኣብዚ ኣብ ላዕሊ ዘሎ ቁንጣሮ ጽሑፍ Rabbit is not an Animal , ኣዝዩ ዘሕዝነና እዩ። PEP 544 ኣእቱ፣ ፕሮቶኮላት: ቅርጻዊ ንኡስ ምጽሓፍ (ስታትቲክ ኣንጭዋ ምጽሓፍ) ዝብል ኣርእስቲ ዘለዎ። ፒኢፒ ንክፍልታትና ናይ ስሕበት ሜላታት ምግላጽ ዘይከኣል ይፈትሕ። ቀሊል Protocol ክፍሊ ይገልጽ: ካብኡ ምስ ወረስካዮ፡ ኣብቲ ክፍሊ ዝተገልጹ ሜላታት ንኣንጭዋ ምጽሓፍ ብቑዓት ይኾኑ፡ ስለዚ ድማ - ስታትቲክ ምጽሓፍ ኣንጭዋ ዝብል ስም ይወሃቦ።


 from typing import Protocol class Animal(Protocol): #1 def feed(): #2 pass class Rabbit: def feed(): #2 pass class VenusFlytrap: def feed(): #2 pass
  1. ካብ Protocol ምውራስ
  2. Animal is a Protocol ስለ ዝኾነ፡ ዝኾነ feed() ዝገልጽ ክፍሊ፡ ብጽቡቕ ይኹን ብሕማቕ Animal ይኸውን።

መደምደምታ

ኣብ ነገራት ዝቐንዐ ፕሮግራሚንግ፡ ውርሻን ንኡስ ምጽሓፍን ከከምቲ እትመሃሮ ቀዳማይ ቋንቋ፡ ናብ ካልኦት ቋንቋታት ዘይትርጎም ፍሉይ ትርጉማት ክህልዎም ይኽእል። ጃቫ ንነብሱ ከም Object-Oriented language ይገልጽን ምሉእ ፓኬጅ የቕርብን። Go ቋንቋ OO ኣይኮነን፡ ግን ሕጂ'ውን ብመንገዲ ምጽሓፍ ኣንጭዋ ንኡስ ምጽሓፍ የቕርብ። ፓይቶን ግሉጽን ዘይግሉጽን ውርሻ የቕርብ ግን መተሓላለፊ የብሉን።


ሓድሽ ቋንቋ ፕሮግራሚንግ ምስቲ ድሮ እትፈልጦ (ቋንቋታት) ብምንጽጻር ኢኻ ትመሃር። ናይ ሓደ ቋንቋ ባህርያት ምፍላጥ ኣብ ዕላማኻ ቋንቋ ኢዲዮማቲክ ኮድ ንምጽሓፍ ቁልፊ እዩ። ኣብ እትፈልጦም ቋንቋታትካ ዘይርከቡ ባህርያት ተላልዮም: ብዛዕባ ፕሮግራሚንግ ብሓፈሻ ዘለካ ርድኢት ከስፍሑ እዮም።


ካብዚ ንላዕሊ ንኺድ፤




ፈለማ ኣብ A Java Geek ብዕለት 26 ጥሪ 2025 ዝተሓትመት