اونوقت اینا رو به استاد بگم به نظرت دیگه راهی واسه پاس شدنش دارم؟ :-k :-k :-k #-o
اومد گفت C شیء گرا نیست چون رابط گرافیکی همراهش نصب نمیشه :o و اصلا زبان خوبی نیست و کاملا منسوخ شده :o !!!!!=)) ترکیدم! ;D
public class ReturnName {
private String Name;
public ReturnName(String name){
Name = name;
}
public ReturnName(){
Name = null;
}
public void setName(String name){
Name = name;
}
public String getName(){
return Name;
}
}
public class theMain {
public static void main(String[] args){
ReturnName rn1 = new ReturnName();
ReturnName rn2 = new ReturnName("Ubuntu forums");
System.out.println(rn1.getName());
System.out.println(rn2.getName());
}
}
ReturnName rn1 = new ReturnName();
ReturnName rn2 = new ReturnName("Ubuntu forums");
public ReturnName(String name){
Name = name;
}
public ReturnName(){
Name = null;
}
قبل از هر چیز برو یه فحش به اون استاد بیسوادت بده، بعد بیا برات تعریف کنم.
اومدی؟ خب این (https://fa.wikipedia.org/wiki/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C_%D8%B4%DB%8C%D8%A1%DA%AF%D8%B1%D8%A7) تعریف رسمیشه.
و جالبه بدونی که افراد زیادی با این شیوهی برنامهنویسی مخالفن از جمله کسی که خودش این ایده رو داده بود. از جمله ی مخالفان این شیوه میشه به ادگار دکسترای بزرگ (خدای علم رایانه)، کن تامپسون (خالق یونیکس)، مرحوم دنیس ریچی فقید (خالق C و یونیکس)، کرانیگان (خالق C)، ریچارد استالمن (آخرین هکر واقعی و خالق GCC و سیستمعامل گنو)، لینوس تروالدز (خالق لینوکس و گیت)، روب پیکه (خالق UTF-8)، رابرت گریسمر (Go)، راس کاکز (Go)، اندرو جرارد (Go)، ریچ هایکی (Clojure)، جو آرمسسترانگ (Erlang, OTP)، سیمون پیتونجونز (Haskel, GHC)، پل گراهام (Arc, Disqus, Dropbox, reddit, Scribd) و… اشاره کرد. فکر کنم تا به حال متوجّه شده باشی که اینها اتّفاقاً تأثیرگذارترین افراد در دنیای رایانه هستن و هیچ کدومشون هم تابهحال برنامهی شیٔگرا ننوشتن. حالا این لیست رو هم ببر و به استادت نشون بده و بگو اگه میتونه به اونها هم نمره نده
اگه قرار به رعایت استانداردهای وزارت علومه، در درس برنامهنویسی پیشرفته باید ++C درس داده بشه، نه جاوا! در ضمن همون طوری که گفتم من هیچ مشکلی با برنامهنویسی شیٔگرا ندارم و مقصودم از ذکر اون نامها هم ذکر این پرسش بود که اگه قرار باشه برای شیٔگرا ننوشتن از کسی نمره کم بشه، پس بهوجود آورندگان دنیای رایانه باید نمرهای زیر صفر میگرفتن؟ چون هیچ کدوم از برنامهنویسی شیٔگرا استفاده نکردن.
اگه قرار به رعایت استانداردهای وزارت علومه، در درس برنامهنویسی پیشرفته باید ++C درس داده بشه، نه جاوا .وزارت علوم هیچ مصوبه ای در مورد استفاده از زبان خاصی ندارد (اگه دارد لطفا منبع معرفی کنید ) بلکه میگه مبانی به روش ساخت یافته و پیشرفته به روش شی گرا حالا ساخت یافته میتونه سی باشه سی پلاس باشه یا حتی دلفی و . . . باشه پیشرفته هم میتونه سی پلاس باشه جاوا باشه یا اصلا سی شارپ ملعون باشه (تو دانشگاه ما هر دوشو cpp گفتن و من هم نسبت فامیلی با استاد و جاوا ندارم و خوشمم از جاوا نمیآد)
وزارت علوم هیچ مصوبه ای در مورد استفاده از زبان خاصی ندارد (اگه دارد لطفا منبع معرفی کنید )در سرفصلهای وزارت علوم دقیقا قید شده که باید چه زبانی آموزش داده بشه.
وزارت علوم هیچ مصوبه ای در مورد استفاده از زبان خاصی ندارد (اگه دارد لطفا منبع معرفی کنید )در سرفصلهای وزارت علوم دقیقا قید شده که باید چه زبانی آموزش داده بشه.
برای مهندسی نرم افزار سرفصلهاش روی سایت نیست ولی مثلا میشه سرفصلهای وزارت علوم برای رشته مهندسی فناوری اطلاعات (http://www.msrt.ir/sites/Talented/shora/DocLib/%DA%AF%D8%B1%D9%88%D9%87%20%D9%81%D9%86%D9%8A%20%D9%88%D9%85%D9%87%D9%86%D8%AF%D8%B3%D9%8A/%D9%83%D8%A7%D8%B1%D8%B4%D9%86%D8%A7%D8%B3%D9%8A%20%D9%BE%D9%8A%D9%88%D8%B3%D8%AA%D9%87/%DA%AF%D8%B1%D9%88%D9%87%20%D9%85%D9%87%D9%86%D8%AF%D8%B3%D9%8A%20%D9%81%D9%86%D8%A7%D9%88%D8%B1%D9%8A%20%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA/%D9%85%D9%87%D9%86%D8%AF%D8%B3%D9%8A%20%D9%81%D9%86%D8%A7%D9%88%D8%B1%D9%8A%20%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA/%D9%85%D9%87%D9%86%D8%AF%D8%B3%D9%8A%20%D9%81%D9%86%D8%A7%D9%88%D8%B1%D9%8A%20%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA.pdf) رو دانلود کرد. در صفحه ۲۰ دقیقا زبان c++ قید شده. برای رشتههای کاردانی هم سرفصلهای قدیمی آموزش و پرورش وجود داره که دقیقا اونجا هم از c++ نام برده شده...
خوب این که خوب میشه اگه همه از cpp استفاده کنن . من نمیدونستم زبان هم مصوب میشه چه بهتر که c++ مرجع شده .درس برنامهسازی پیشرفته طبق قاعده فقط c++ تدریس میشه. اما معمولا در درس «مباحث ویژه» (یا مثلا «برنامه نویسی وب») هر کسی بر اساس سلیقه و تسلطی که به یک زبان داره همون رو تدریس میکنه. البته اون زبان باید به روز باشه. هرچند هستند کسانی که هنوز VB6 و asp (و نه asp.NET) تدریس میکنن!!
چقدر مبحث منحرف شد :oکدوم انحراف؟هنوز هم بحث سر شی گراای است
](*,) ](*,)
والا من میخواستم ببینم شی گرایی چیه
چقدر مبحث منحرف شد :o
آقای بهزادی میشه بفرمایید چرا این بزرگان مخال شی گرایی بودند؟؟
پس برای پروژه های بزرگ(ارتقاء کرنل) به جا است و سرعت را بالا می بره
چون سرعت توسعه رو کم میکنه. مثلا سیستم عامل Haiku داره بصورت شی گرا نوشته میشه هنوز آلفاست! ولی لینوکس رو ببین :D (البته مثالم شدیدا مشکل داره ::) ) .دوست عزیز احتمالا دچار سوء برداشت شدید توسعه و عیب یابی سریعتر از اصلی ترین مزایای شی گرایی است در صورتی که شی گرایی معایبی نیز دارد
سی++ هم که میانی است و قابلیت های زبان های سطح پایین را دارهپس برای پروژه های بزرگ(ارتقاء کرنل) به جا است و سرعت را بالا می بره
برای نوشتن کرنل و درایورهای سخت افزاری از زبانهای برنامه نویسی سطح بالا استفاده نمیشه
از زبانهایی مثل اسمبلی و سی استفاده میشه که هیچکدوم از اونها از برنامه نویسی شیگرا پشتیبانی نمیکنن
سی++ هم که میانی است و قابلیت های زبان های سطح پایین را داره
سی++ هم که میانی است و قابلیت های زبان های سطح پایین را داره
سی پلاس سطح بالاست
بگذریم بحث خیلی به بیراهه رفته فکر می کنم بهتره از همینجا بحث رو تموم کنیم اگه کسی در مورد برنامه نویسی شیگرا مشکلی داره عنوان کنه و بهتره در مورد توسعه برنامه و کرنل و اینجور چیزا در این تاپیک دیگه بحث نشه
۱- توی چندتا کتاب گفتند سطح میانی.
۲- کلا میشه توی هر زبان غیر شی گرایی شی گرایی رو پیاده سازی کرد. این که عده ای ازش استفاده میکنند یا نمیکنند به خودشون مربوط هست :)
از اونجایی که توی این بحث، به کتابچهای که من نویسندهاش بودم اشاره شده، شاید بد نباشه من هم چند خط توضیح راجع به شیگرایی بدم.
…
حداقل طراحی زبان طوری باشه که استایل کدنویسی رو تحمیل نکنه. به برنامه نویس اجازه بده در جایی که فکر میکنه شیگرایی مناسبه ازش استفاده کنه، و در جایی هم که فکر میکنه لازم نیست، مجبور به استفاده از این شیوه نباشه. وقتی از «استفاده» حرف میزنیم، منظورمون جنبهی
ظاهری یا سینتکس نیست، منظورمون استفاده از ایده های شیگرایی هست. همون مفاهیم شیگرایی که حتی در زبان های غیر شی گرا هم قابل استفاده
هستن.
------------
[1]: http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en
یا یک زبانی مثل Go رو در نظر بگیرید. افراد پشت این زبان حرفشون اینه: مگه ساختار class و مباحث مربوط به اون همون چیزی نبود که شما
با struct های C در اختیار داشتین؟ مگه توی c نمیشه برای یک struct فیلد تعریف کرد؟ مگه نمیشه متد تعریف کرد؟ این زبان ها فقط از
نظر سینتکس و روش استفاده، کاری کردن که شما با ساختار class همون کارها رو راحت تر و با انعطاف پذیری بالاتر انجام بدید. خوب اگه قضیه
اینه، ما نیاز به ساختار class نداریم، ما این راحتی و انعطاف پذیری رو با همون struct هایی که در C باهاشون کار میکردید به شما تقدیم
میکنیم.
البته باید توجه کرد که برای اینکه یک زبان از پارادایم شی گرایی پشتیبانی کنه باید حداقل سه قابلیت کلیدی رو فراهم کنه:
* کپسوله سازی
* چند ریختی
* وراثت
زبانی که تنها از قابلیت کپسوله سازی پشتیبانی کنه Object-Based هست ولی Object-Oriented نیست.
دستتون درد نکنه امیررضا جان واقعا عالی بود من این زبان های Go, Erlang, Haskell, Scala, Clojure را نمی شناسم میشه لینکی یا کتاب الکترونیکی که فارسی باشه معرفی کنید
خوب کاملا مشخصه شما دارید شیگرایی رو با چیزی که در java و ++c هست میسنجید.
اینها قانون نیستن. مثلا پایتون کپسوله سازی نداره به اون حالت! همه چی public هست. پس شیگرا نیست؟
سی پلاس سطح بالاستسیپلاسپلاس رو نه میشه سطحبالا دونست، نه سطح پایین، برای همین عموما سطح میانی نامیده میشه.
سی پلاس سطح بالاستسیپلاسپلاس رو نه میشه سطحبالا دونست، نه سطح پایین، برای همین عموما سطح میانی نامیده میشه.It is regarded as an intermediate-level language, as it comprises both high-level and low-level language features.منبع:Schildt, Herbert (1 August 1998). C++ The Complete Reference (Third ed.). Osborne McGraw-Hill. ISBN 978-0-07-882476-0.
توی همون کتاب هربرت شیلد نوشته «زبان سطح بالا زبانیست که هر آنچه برنامه نویس بخواهد قبلا در زبان وجود داشته باشد. زبان سطح پایین چیزی به جز نمادهایی برای دستورات سطح پایین ماشین به برنامه نویس ارائه نمیدهد. اما زبان سطح میانی قابلیتها و ابزارهایی را به برنامه نویس ارائه میدهد که بتواند دستورات زبان سطح بالا را تولید کند» :)
توی همون کتاب هربرت شیلد نوشته «زبان سطح بالا زبانیست که هر آنچه برنامه نویس بخواهد قبلا در زبان وجود داشته باشد. زبان سطح پایین چیزی به جز نمادهایی برای دستورات سطح پایین ماشین به برنامه نویس ارائه نمیدهد. اما زبان سطح میانی قابلیتها و ابزارهایی را به برنامه نویس ارائه میدهد که بتواند دستورات زبان سطح بالا را تولید کند» :)دسته بندی زبانها به سطح بالا و سطح پایین تقریبا «نسبی» هست و منجر به ایجاد [فقط] دو دسته مجزا نخواهد شد. زبان سطح پایین رو کسانی که کد اسمبلی و یا میکروکنترلر AVR نوشته باشن به خوبی درک میکنن. جایی که باید با رجیسترها کلنجار بری و به نوعی مدیریت همه چیز رو خودت به عنوان برنامهنویس به عهده داری. برای میکرو میشه با c هم کد نوشت. اما در حقیقت هیچ سطح انتزاعی بین کد و واقعیت سختافزار ایجاد نمیشه. البته میشه به نسبت بخشی از کد رو در سطح انتزاع بالاتر نوشت.
چیزی تحت عنوان سطح میانی نداریمخوب این یک نظر شخصی هست، که شاید هم از بعضی جوانب درست باشه.
چیزی تحت عنوان سطح بالا یا سطح پایین وجود نداره و فقط از این واژه ها برای وقتی که مطلبی مینویسن
استفاده میکنن تا درک مطلب برای خواننده راحت تر بشه. برای همینه هر کتاب و هر نویسنده ممکنه یه دسته
بندی متفاوتی کرده باشه، چون اصلا دسته بندی ایی به این شکل وجود نداره. بنابراین تا فردا صبح
هم که سرش بحث کنید به جایی نمیرسید.
بهترین کار اینه که وقتی ازتون پرسیدند زبان X سطح بالا هست یا سطح پایین، در جواب بگید به نسبت چه زبانی؟
مثلا اگه درباره C سوال کردند و گفتند به نسبت پایتون، بگید یه زبان خیلی سطح پایینه و اگه گفتن به نسبت
اسمبلی، بگید یه زبان کاملا سطح بالاست.
چیزی تحت عنوان سطح بالا یا سطح پایین وجود نداره و فقط از این واژه ها برای وقتی که مطلبی مینویسن
استفاده میکنن تا درک مطلب برای خواننده راحت تر بشه. برای همینه هر کتاب و هر نویسنده ممکنه یه دسته
بندی متفاوتی کرده باشه، چون اصلا دسته بندی ایی به این شکل وجود نداره. بنابراین تا فردا صبح
هم که سرش بحث کنید به جایی نمیرسید.
بهترین کار اینه که وقتی ازتون پرسیدند زبان X سطح بالا هست یا سطح پایین، در جواب بگید به نسبت چه زبانی؟
مثلا اگه درباره C سوال کردند و گفتند به نسبت پایتون، بگید یه زبان خیلی سطح پایینه و اگه گفتن به نسبت
اسمبلی، بگید یه زبان کاملا سطح بالاست.
احتمالا طرف جزو اعضای کمیته ANSI/ISO محلشونهخوب یک بحث وقتی خوب پیش میره که افراد به صورت موثق و با استناد به منابع صحبت بکنند، نه اینکه حرفی که یک جایی شنیدند رو تکرار کنند.
احتمالا طرف جزو اعضای کمیته ANSI/ISO محلشونهخوب یک بحث وقتی خوب پیش میره که افراد به صورت موثق و با استناد به منابع صحبت بکنند، نه اینکه حرفی که یک جایی شنیدند رو تکرار کنند.
وقتی که منابع معتبری که همه دنیا قبولش دارند رو کنار بذاریم و به جای بیان یک منبع معتبر دیگه، شروع به مسخرهبازی بکنیم، بحث نتیجه نخواهد داشت و باید بحث رو اینطور تموم کنیم که: بله، شما راست میگی!