سلام:
منظورم این بود :
به عبارتی Hibernate علاوه بر اینکه یک Jpa Prrovider هست امکانات بیشتری از اون رو ارائه میده .
سلام:
منظورم این بود :
به عبارتی Hibernate علاوه بر اینکه یک Jpa Prrovider هست امکانات بیشتری از اون رو ارائه میده .
یک بار و برای همیشه می خواهم چیزهای زیادی ندانم.فرزانگی نیز برای شناخت , محدودیت می آفریند .(پندها وپیکان ها – فردریش نیچه)
اما برای بحث درباره اینکه چه کسی استاندارد را تعریف میکند و بر اساس چه چیزهای استاندارد تعریف میشه ؟
در بدو موضوع باید در نظر داشته باشیم استانداردها برای اینکه تعامل بین انسانها رو سادهتر کنند به وجود اومدند وقتی ما مقیاس طول رو متر قرار میدیم در کل جهان قابل درک هست و امکان نداره متر ما با متر جای دیگه متفاوت باشه این نکته اول یعنی ضرورت استاندارد قابل درک هست.
فرض کنید هند چرا اینقدر بهش پروژههای Outsource میدن ؟ صرفآ که ارزون بودن نیست.استاندارد بودن هست
شرکتهای آمریکایی و اروپایی میدونن وقتی صدها هزار دلار پول یه کامپوننت رو میدن در عوض چیزی رو دریافت میکنن که ازش سر درمیارن.سالها پیش توی ایران هم outsource گرفته شد ولی در نهایت خیلی از اون پروژهها رو لغو کردن چون استاندارد تولید نشده بود.
و نکته سوم برای لزوم استاندارد عمل کردن اینکه تولید نرمافزار یک صنعت هست و وقتی کلمه صنعت به میون میاد استاندارد یک واژه پرقدمت میشه.
حالا از بحث لزوم استاندارد بیاییم بیرون ببینم در جاوا این استانداردها رو کی تعیین میکنه.خب یک مثال از دو
کد زیر کدوم یکی استاندارد هست کدوم یکی نه :
javax.swing
org.apache
خب طبعآ کد اول استاندارد هست ولی کد دوم میتونه استاندارد باشه میتونه نباشه.پس ملاک ما چی هست ؟
در جاوا یک اکوسیستم برای اینکار وجود داره مجموع دو چیز استاندارد رو تعیین میکنه :
Java Specification + JCP
به طور واضح و بر طبق اسناد سان [سابق] استانداردها از دل JCP و از طریق JSR بیرون میاد.فرض کنید در زمانی جاوا یک Data Persistence نداشت سان اعلام کرد JDO فعلآ روش استاندارد هست.الان JCP اعلام میکنه که ما روش JPA رو در پیش گرفتیم و این روش استاندارد هست.یعنی مرجع تصمیم گیرنده در جاوا برای روشهای استاندارد JCP هست.و به شکل ۱۰۰٪ ملاک تمام تصمیم گیریها.
یک زمانی سان [سابق] اپلیکیشن سرور نداشت.تست تطابق برای J2EE گذاشت و JBoss تونست اون تستها رو کامل طی کنه تا به یک اپلیکیشن سرور استاندارد بدل بشه.بعد از مدتها سان GlassFish رو پایه
استانداردهای خودش اعلام میکنه.
بحث ما سر این نیست که JBoss خوب هست یا نه و یا فرضآ Hibernate خوب هست یا نه تمام این پلتفرمها
عالی بحث ما حتی استفاده یا عدم استفاده از اونها نیست.ما درباره استاندارد صنعتی صحبت میکنیم ممکنه حتی بزرگترین شرکتهای نرمافزاری دنیا هم اونها رو رعایت نکنن.ولی مسیر این هست و تغییرات به این سمت و سو میره.شما فرض کنید EclipseLink میاد و تمام استانداردهای JPA 2.0 رو پشتیبانی میکنه شما الان در وب و گفتههای شخصی افراد مطرح جاوا در دنیا میبینید گرایش به این سمت میره.
اما چرا استاندارد خوب هست ؟
دوام و پایداری راز استاندارد هست شما وقتی از ابزار استاندارد استفاده میکنید مطمئن هستید تغییرات به آرامی با دقت و با دلیل مناسب صورت میگیره کاری که شما میبینید در JCP انجام میشه و تا وقتی افراد و شرکتهای مختلف درباره یک JSR نظر ندن انجام نمیشه.
فرض کنید Groovy وقتی اومد یه عنوان یک زبان اسکریپتی مورد توجه فوقالعاده قرار گرفت.ولی سال گذشته
سازنده Groovy در وبلاگش نوشت از دید اون Scala چیزی فراتر از اون چیزی هست که خودش ساخته ! این یعنی دعوت از همه برای استفاده از Scala.مشکل اینجاست که حتی این زبانها کما اینکه از حمایت JCP برخوردار هستند ولی به دلیل وجود یک استاندارد قوی در پشت اونها تغییر و تحولات ناگهانی زیادی دارن.
در این لحظه و تا قبل از زمانی که اوراکل هفتمین پلتفرم جاوا JSE 7 رو ارائه بده.استانداردها بر روی
JSE 6 و JEE6 تمرکز کرده.همچنین همونطور که خود اوراکل هم تاکید کرد.نتبینز رو به عنوان IDE توسعهدهندگان جاوا و JDeveloper رو به عنوان IDE توسعهدهندگان اوراکل حمایت خواهد کرد.اینها همشون یعنی تاکید وقتی مدیرعامل اوراکل در صحبتش میگه ما از انقلاب تکنولوژیک JEE 6 حمایت میکنیم و در نسخه بعدی همین موضوع رو ادامه میدیم همش نشان از روش و خطی که باید در پیش گرفت داره.این که هنوز یک سری از محصولات تولید میشن و ازشون استفاده میشه صرفآ به خاطر خو گرفتن افراد هست و نه استاندارد بودن یا حتی عرف بودنش.
خیلی خوب بحث کردی و خوب در مورد استاندارد و فایده اون که من در پست قبلی هم بهش اشاره کردم که مفهوم خیلی بالاتر از محصول است رو شما هم تایید کردی بصورت خیلی مفصل.
اما کلا سوال من این بود که استاندارد چه کسی یا کسانی و بر اساس چه معیاری تعریف می کنند.
ببین عزیز من سان سابق اول JPA نداشت hibernate دید خوشش اومد ولی hibernate بقول شما و کلا توی JCP قبلا مطرح نبود. دیدن یک فریم ورک هست خوبه، قشنگه بعد اومد براش JSR داد بیرون.
EJB اول ماله IBM بود سان ثابق خوشش اومد براش JSR داد بیرون. خیلی از همون شرکتها از جمله apache اومد این JSR رو Implement کرد. خود Hibernate اومد JSR ی که توی JPA هست رو implement کرد. مشکلی نیست ولی الان همه می دونند که خیلی از مباحثی که توی hibernate بود الان تازه توی jpa 2 اومده توی قبلی نبود. hibernate هنوز داره نسخه می ده. مگه toplink نبود، ماله oracle هم بود ولی الان کجاست؟ الان eclipselink هست.
منظور من اینه که استاندارد هاهم که من کاملا با شما موافقم ماورای محصول هستند ولی دلیل بر این نیست که باید استانداردی بوجود بیاد تا محصولی ایجاد بشه و محصولی که بر اساس استاندارد هست حتما به اجرا در بیاد.
محصولاتی هستند که الان بسیار رایج و آسانتر و قوی تر از نوع استاندارد خودشون هستند.
spring که یک فریم ورک بود و الان تبدیل به یک platform شده بسیار رایج و آسون و فراگیر هست تا ejb container در ضمن استاندارد هم نیست ولی بسیار popular هست.
و جالب اینکه ejb به عنوان یک api استاندارد جاوا در webapp های متفاوت بصورت همیشه درست deploy نمی شه با اینکه یک api استاندارد بشمار می آید.
اینکه هند در صنعت نرم افزار موفق شده به این دلیل نیست که استاندارد کار می کنه بلکه دلایل مختلفی هست که باعث شده که هند موفق بشه.
کسانی که با جاوا کار می کنند خیلی خوب می دونند بزرگترین حسن ان اینه که ، البته به نظر من که شما دستت بازه چون JCP ماله یک شرکت نیست ماله بیش از ۳۰۰ شرکت غول IT هست و JSR ها رو از روی هوا خلق نمی کنند و جالب اینکه مدیران این شرکت ها خیلی بی تعصبانه نسبت به قضیه فکر می کنند تا مصرف کنندگان این محصول ها. اینکه استارد هست باید حتما استاندارد استفاده بشه بنا به دلایلی که بالا گفتم در دنیای java enterprise هیچ مطرح و اجباری نیست
برای صحبت کردن در مورد استاندارد فقط تسلط صرف بر علم نرم افزار کافی نیست حتی اگر موضوع مورد بحث بر روی محصولات نرم افزاری باشه اما اینکه چه کسی [/انی]استاندارد را تعیین می کنند یک مثال نرم افزاری می تواند W3Cو...باشد البته یک مثال بود به عبارت دیگر چه کسانی(شرکت هایی) در مجموعه تعیین کننده دخیل هستند.
اما آن چیزی که ما به عنوان استاندارد در نرم افزار می شناسیم نظر غالب قدرت های روز است که صد البته در دنیای امروز یک توجیه علمی یا استدلال فنی برای همراهی گروههای هدف نیز لازم است.
من مارکسسیت نیستم ولی برای اقتصاد نقش نهایی قائلم،اما معتقدم اقتصاد سیاسی در دنیای نرم افزار موج می زند و یکی از اصول اقتصاد بحث رقابت است و برتری در این رقابت پارامترهای بیشماری دارد.
نکته بعدی اینکه استاندارد به این شکل نیست که مثلاً عده ای با در نظر گرفتن علایق و گرایشات خود ان را خلق کنند اگرچه امروز علایق قدرت های بزرگ تعیین کننده شده و مفهوم انحصار دقیقاً موید همین مطلب است و اگر مبدا سیر تکاملی استاندارد را از آرا ،اف تیلور و سایر متقدمین بگیرم پارامتر عقل، اثبات ،بازده و جوابگویی مورد سنجش در قبال این پارامترها راهگشا ستتکامل و الگو برداری از موارد مثبت گذشته نقطه ی منفی محسوب نمی شه بحث استاندارد بودن JPA2.0 را کسی به عنوان اولین بودن یا بی رقیب بودن اون مطرح نمی کنه.
ببین عزیز من سان سابق اول JPA نداشت hibernate دید خوشش اومد ولی hibernate بقول شما و کلا توی JCP قبلا مطرح نبود. دیدن یک فریم ورک هست خوبه، قشنگه بعد اومد براش JSR داد بیرون.
EJB اول ماله IBM بود سان ثابق خوشش اومد براش JSR داد بیرون. خیلی از همون شرکتها از جمله apache اومد این JSR رو Implement کرد. خود Hibernate اومد JSR ی که توی JPA هست رو implement کرد. مشکلی نیست ولی الان همه می دونند که خیلی از مباحثی که توی hibernate بود الان تازه توی jpa 2 اومده توی قبلی نبود. hibernate هنوز داره نسخه می ده. مگه toplink نبود، ماله oracle هم بود ولی الان کجاست؟ الان eclipselink هست.
همیشه همراه استاندارد یک نوع آینده نگری هم مطرح می شود در خیلی موارد محصولات استاندارد به واسطه پیچیدگی هایی که برای عینیت بخشیدن به مفهوم انعطاف پذیری در آینده همراه خود دارند کمتر مورد استقبال قرار می گیرند.محصولاتی هستند که الان بسیار رایج و آسانتر و قوی تر از نوع استاندارد خودشون هستند.
spring که یک فریم ورک بود و الان تبدیل به یک platform شده بسیار رایج و آسون و فراگیر هست تا ejb container در ضمن استاندارد هم نیست ولی بسیار popular هست.
من در مورد بخش اول صحبتهاتون نظری ندارم چون کامل متوجه نشدم.
من موافق صحبت شما هستم به اضافه اینکه تنها راه حل هم نیست و حتی به جرات می گم نسبت به محصولات هم رده خودش ضعیفتر هم هست.تکامل و الگو برداری از موارد مثبت گذشته نقطه ی منفی محسوب نمی شه بحث استاندارد بودن JPA2.0 را کسی به عنوان اولین بودن یا بی رقیب بودن اون مطرح نمی کنه.
در مورد بخش آخر حرفتون
آیا شما براین باور هستید که دیگر محصولات popular و مطرح بدون آینده نگری و با دید سطحی تولید شده اند و هیچ کدامشون بدون پیچیدگی هستند؟همیشه همراه استاندارد یک نوع آینده نگری هم مطرح می شود در خیلی موارد محصولات استاندارد به واسطه پیچیدگی هایی که برای عینیت بخشیدن به مفهوم انعطاف پذیری در آینده همراه خود دارند کمتر مورد استقبال قرار می گیرند.
صدرصد چنین نیست و چنین نخواهد بود. اینکه زبان جاوا یک زبان قدرتمند و به روز شده و اکثر محصولات معروف با این زبان و بطور کلی روی این پلتفرم است به این معنا نیست که هیچ فکر و آینده نگری در اصل خود محصول وجود نداشته و یا اینکه همراه با پیچیدگی نیست.
من در اون قسمت سعی کردم در چهار بخش طی کوه تاه ترین جملات نظرات مطرح چهار علم موجود که دارای تئوری در این مورد هستند را مطرح کنم یعنی علوم:
-مدیریت
-اقتصاد
-سیاست
-نرم افزار
و در ضمن تمام سعی خودم را کردم که نرم افزاری بودن من بر روی مخلص جملات در هر بخش سایه بندازه اما ادای امانت نیز صورت بگیره.
پاورقی بخش اول:
این پاورقی هیچ ربطی به بحث ما نداره ولی چون می بینم به آلبرت انیشتن علاقه دارید پس:
جایی او[انیشتن] گفت: "همه چیز می بایست تا حد امکان ساده شود اما نه ساده تر"
و من می گوییم:"همه چیز می بایست تا حد امکان سنجیده شود حتی بیشتر "
--------------------------------------------------------------------------------------------------------
قطعاً همانطور که خوتان نیز می دانید منظورم این نبود ، هر محبوبیت برگرفته از یک خواستگاه است و تا زمانی که آن خواستگاه و مورد کاربرد پا برجاست آن محبوبیت نیز وجود دارد اما بر روی همان مصادیقی که فعلاً مورد بحث ماست چند مورد به عنوان مثال عرض می کنم:آیا شما براین باور هستید که دیگر محصولات popular و مطرح بدون آینده نگری و با دید سطحی تولید شده اند و هیچ کدامشون بدون پیچیدگی هستند؟
صدرصد چنین نیست و چنین نخواهد بود. اینکه زبان جاوا یک زبان قدرتمند و به روز شده و اکثر محصولات معروف با این زبان و بطور کلی روی این پلتفرم است به این معنا نیست که هیچ فکر و آینده نگری در اصل خود محصول وجود نداشته و یا اینکه همراه با پیچیدگی نیست.
POJO Application Frameworks: Spring , EJB 3.0مثلاً وقتی در مورد EJBوSpring صحبت می کنیم نا گریز از بحث در موارد زیر هستیم که نهایتاً موجب جهت گیری ما می شود.
1-Vendor Independence
حامیان EJB شامل مجموعه ها و تشکیلات منسجمی هستند که می تواند متضمن پیشرفت این استاندارد و استقلال آن در آینده باشند در مقابل Interface21 INC.
یا بحث در مورد نحوه ی Service Integration
بحث در مورد نحوه ی انعطاف پذیری در پیاده سازی
بحث در مورد تقابل وتفاهم XML و Annotation و.....
و وقتی بحث از پیچیدگی می شود سطوح ،کیفیت،جنس و درگیر شدن با آن بر پایه تکنولوژی های مختلف تفاوت می کند واگرنه که در اصل آن شکی نیست
آخرین ویرایش به وسیله billguess : دوشنبه 20 اردیبهشت 1389 در 15:19 عصر