ورود

View Full Version : خبر: گوگل هم زبان برنامه نویسی عرضه کرد



Mehdi Asgari
چهارشنبه 20 آبان 1388, 11:05 صبح
ظاهرا گوگل به Unladen Swallow (http://www.barnamenevis.org/forum/showthread.php?t=152738) بسنده نکرده و میخواد خودش یه زبان داشته باشه. اسم زبان جدید Go هست و این هم تعریف خودشون از این زبان:


Go combines the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++‎‎. Typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C. Go lets you move fast.

Go is a great language for systems programming with support for multi-processing, a fresh and lightweight take on object-oriented design, plus some cool features like true closures and reflection

منبع: http://google-opensource.blogspot.com/2009/11/hey-ho-lets-go.html
سایت اصلی زبان : http://golang.org
http://arstechnica.com/open-source/news/2009/11/go-new-open-source-programming-language-from-google.ars?utm_source=rss&utm_medium=rss&utm_campaign=rss
اگه حوصله دارید این گفتگو رو هم بخونید. جالبه: http://groups.google.com/group/unladen-swallow/browse_thread/thread/4edbc406f544643e

Mrs.Net
چهارشنبه 20 آبان 1388, 15:37 عصر
یعنی یک زبان پایه ساخته یا اینکه باز توسط c کامپایل میشه؟

Mehdi Asgari
چهارشنبه 20 آبان 1388, 16:18 عصر
نخیر کاملا توسط خودشون نوشته شده (flex/bison)
البته به جز کامپایلرهای خودش ، میشه از کامپایلر gcc هم استفاده کرد
سرعت کامپایل کامپایلر خودش بیشتره ، اما سرعت اجرای فایل های ایجاد شده توسط gcc بیشتر
به یه سری دلایل هم که خودشون ذکر کردن از LLVM استفاده نکردن
نمی دونم چرا با وجود D دوباره همچین چیزی رو از صفر شروع کردن ؟

Mehdi Asgari
پنج شنبه 21 آبان 1388, 01:10 صبح
این کتابی که لینکشو دادید هیچ ربطی به این زبان نداره. لااقل به تاریخ انتشارش دقت می کردید!
این کتاب دربارۀ زبان Go! (http://en.wikipedia.org/wiki/Go!_%28programming_language%29) هست ، نه Go

saeed_Z_F
پنج شنبه 21 آبان 1388, 09:27 صبح
نکته جالب اینه که کامپایلرهای Go فقط از دو سیستم عامل (Linux, Mac OS X) پشتیبانی می کند.

http://saeedzarinfam.blogspot.com/2009/11/go.html

once4ever
پنج شنبه 21 آبان 1388, 16:35 عصر
...
نمی دونم چرا با وجود D دوباره همچین چیزی رو از صفر شروع کردن ؟
تنها نکته ی مورد علاقه من هم همینه و این بر میگرده به همون سیاستی که این مار خوش خط و خال داره دنبال میکنه
زبان D از همون زبان C مشتق شده پس دیباگرش هم دیباگر سی هست، همین مسئله باعث میشه که گوگل یک زبانی درست کنه که دیباگرش مال خودش باشه (به قول خودشون Ogle که همون ادامه ی google هست) تا تو فرصت مناسب بتونه طرح انحصاری خودش رو اعمال کنه (انسانهای وابسته به گوگل) .
من که خیلی وقته سعی میکنم به هیچکدام از ابزارهای گوگل وابسته نباشم ( جز جستجوش ) میبینم چقدر سریع سیستم عاملش و ابزارهاش داره گسترده میشه و هیچ جایگرینی هم نمیتونه داشته باشه!

DLL_DLL
پنج شنبه 21 آبان 1388, 17:43 عصر
من شنید بودم اسمش هست که NOOP . چطوریه پس ؟


http://code.google.com/p/noop/







What is Noop?

Noop (pronounced noh-awp, like the machine instruction) is a new language experiment that attempts to blend the best lessons of languages old and new, while syntactically encouraging what we believe to be good coding practices and discouraging the worst offenses. Noop is initially targeted to run on the Java Virtual Machine.
What is the status of Noop?

Right now, we are in an early design and development phase. You can't code anything interesting in Noop yet.
Why another language?

Our experience has been that developers often create code that's hard to test and maintain, without realizing it. On a large software project, this can create problems later on for the whole team. In analyzing this problem, we found that the root cause in many cases was language features - like globally visible state, misused subclassing, and API's that are easily misused. Noop will try to avoid these problems.
Who's behind Noop?

Noop is a side-project from a collection of like-minded developers and contributers. We hail from several companies, including (but not limited to) Google.
Noop is opinionated

The developers of Noop feel pretty strongly about good and bad practices in software development. Noop will support or deter these as best as possible. For example:
Noop says Yes to Noop says No to

Dependency injection built into the language
Testability - a seam between every pair of classes
Immutability
Syntax geared entirely towards readable code
Executable documentation that's never out-of-date
Properties, strong typing, and sensible modern standard library



Any statics whatsoever
Implementation inheritance (subclassing)
Primitive types (everything's an object)
Unnecessary boilerplate code


Why Noop?

Dependency Injection changed the way we write software. Spring overtook EJB's in thoughtful enterprises, and Guice and PicoContainer are an important part of many well-written applications today.
Automated testing, especially Unit Testing, is also a crucial part of building reliable software that you can feel confident about supporting and changing over its lifetime. Any decent software shop should be writing some tests, the best ones are test-driven and have good code coverage.
Noop is a new language that will run on the Java Virtual Machine, and in source form will look similar to Java. The goal is to build dependency injection and testability into the language from the beginning, rather than rely on third-party libraries as other languages do.
Immutability and minimal variable scope are encouraged by making final/const behavior the default and providing easy access to a functional style. Testability is encouraged by providing Dependency Injection at the language level and a compact constructor injection syntax.
There are three proposed ways to use your Noop source files:


Java translator: produces Java source. Allows you to use Noop without converting your codebase, but not all runtime features of the language are provided.
Interpreter: reads and evaluates the Noop code through an interpreter. Slower, but will have a command-line interface
Compiled: to Java bytecode.

Saeed_m_Farid
جمعه 22 آبان 1388, 14:07 عصر
سایت اصلی زبان : http://golang.org
سلام آقا مهدی
شما دیگه آخر سرعت عملی، چه جوری با این سرعت داری تکنولوژی رو تعقیب می کنی؟

ولی یه نکته ای که هست: سایت مرجع این زبان واسه IP های ایران بسته شدن، یا شما داخل ایران نیستی یا ...



Google Error

Forbidden

Your client does not have permission to get URL / from this server. (Client IP address: {IRAN})

You are accessing this page from a forbidden country
به هرصورت، من برای دوستانی که شرایط استفاده از پروکسی ندارن، یه HTML از Tutorial و Specification های go گرفتم که امیدوارم بدرد دوستان (کم امکانات مثل من!) بخوره. این پست رو واسه دوستانی میزنم که [بازم مشابه من] از 24 ساعت شبانه روز، 2-3 ساعت بیشتر به خونشون تعلق نداره و از طرف دیگه (به هر دلیلی) امکان تانل زدن و پ@-ر@-و@-ک@-س@-ی و ... تو محل کار و غیر از خونه ندارن!

ضمناً یه سوال هم داشتم: اینکه این GO ( یعنی http://upload.wikimedia.org/wikipedia/en/2/23/Golang.png) با !GO ای که سال 2003 منتشر شد (و بنظر من زیاد استقبال هم نشد) چه شباهتی داره؟ راستش از قبلیه من تقریباً هیچ چی نمی دونم :خجالت:، میدونم اون یه زبان تابعی هست ولی قرار بود شما تحقیقاتتون در مورد این جور زبانها کامل شد، ما رو هم در جریان بذارید (مثلاً Erlang)، اصلاً ontology-oriented یعنی چی؟

این پایین نمونه کدشه، راستش هیچ چیز درست حسابی از منطق برنامه حالیم نمیشه!
Gender::= male | female.
person <˜ {dayOfBirth:[]=>day. age:[]=>integer.
gender:[]=>Gender. name:[]=>string.
home:[]=>string. lives:[string]{}}.
person:[string,day,Gender,string]$=person.
person(Nm,Born,Sx,Hm)..{
dayOfBirth()=>Born.
age() => yearsBetween(now(),Born).
gender()=>Sx.
name()=>Nm.
home()=>Hm.
lives(Pl) :- Pl=home().
yearsBetween:[integer,day]=>integer.
yearsBetween(...) => ..
}.
newPerson:[string,day,Gender,string]=>person.
newPerson(Nm,Born,Sx,Hm)=>$person(Nm,Born,Sx,Hm).
بازم ممنون از مطلب خوبتون ...

Mehdi Asgari
جمعه 22 آبان 1388, 16:34 عصر
سایت مرجع این زبان واسه IP های ایران بسته شدن
بله. من از SOCKS استفاده می کنم

اینکه این GO ( یعنی ) با !GO ای که سال 2003 منتشر شد (و بنظر من زیاد استقبال هم نشد) چه شباهتی داره؟
نمی دونم (ظاهرا که اصلا شبیه نیستن. یعنی هدف مشترکی رو دنبال نمی کنن ، چون زبان جدید سعی می کنه یک زبان سیستمی جدید باشه و قبلی یک زبان logic بود.)
ظاهرا گوگل نمی دونسته همچین اسمی قبلا وجود داشته : http://code.google.com/p/go/issues/detail?id=9

قرار بود شما تحقیقاتتون در مورد این جور زبانها کامل شد، ما رو هم در جریان بذارید (مثلاً Erlang)
اینجا که جاش نیست ، من در حال حاضر از زبان های تابعی در کارهام استفاده می کنم و بیشتری موضوع تحقیق و مطالعه ام هم هستن ، اگه سوال خاصی دارید یا مایلید دوباره بحث دربارۀ برنامه نویسی تابعی در فروم جون بگیره ، می تونید تاپیکی در این باره ایجاد کنید تا بحث هامون رو دنبال کنیم