PDA

View Full Version : سوال: استفاده از JAVA به عنوان جایگزین PHP+JavaScript ؟؟؟



ali_vavan2009
دوشنبه 07 مهر 1393, 22:58 عصر
سلام دوستان

ببخشید اگر سوالم خیلی پیش پا افتاده و عجیب هست.

من بیش از 8 سال هست که دارم برنامه نویسی تحت وب انجام میدهم و با HTML, CSS, JavaScript, PHP, MySQL کار می کنم. تازه شروع به یادگیری Python کردم.

من یک پروژه دارم که بیش از 90٪ آن با JavaScript نوشته شده است و مشکل اصلی در این پروژه Open Source بودن آن است.

در اصل دنبال زبان برنامه نویسی هستم که Cross-platform باشد و بتوان آن را Close Source کرد.

اصل چیزهایی که نیاز دارم:

1- ارتباط با دیتابیس ( MySQL, SQLite, Monogo, Access )
2- امکان خواندن و نوشتن فایل
3- Cross-platform (Linux, Mac, Windows)
4- Close Source
5- Draggable, Droppable, Resizable, Selectable, Sortable, ... ( در کل هر کاری که میشه با JavaScript انجام داد. )

از عنوان تاپیک میشه به اصل سوال پی برد!

آیا می توان از JAVA به عنوان جایگزین PHP + JavaScript استفاده کرد؟ تا بتونم پروژه های Close Source ارائه دهم؟

باتشکر

ali_vavan2009
سه شنبه 08 مهر 1393, 09:35 صبح
دوستان کسی نبود؟

محمد فدوی
سه شنبه 08 مهر 1393, 10:16 صبح
من بیش از 8 سال هست که دارم برنامه نویسی تحت وب انجام میدهم و با HTML, CSS, JavaScript, PHP, MySQL کار می کنم. تازه شروع به یادگیری Python کردم.
شما با این تجربه حتما باید بدونی که PHP هم مستقل از پلتفرمه و هم متن بازه.

در اصل دنبال زبان برنامه نویسی هستم که Cross-platform باشد و بتوان آن را Close Source کرد.
بله Java مستقل از پلتفرمه. هرچند PHP هم هست. در مورد Close Source هم خب بله شما میتونی برنامه ت رو بصورت Close Source صادر کنی. هرچند در مورد برنامه نویسی وب هیچوقت کاربر کد شما رو مشاهده نمیکنه، یکم نامفهومه.


من یک پروژه دارم که بیش از 90٪ آن با JavaScript نوشته شده است و مشکل اصلی در این پروژه Open Source بودن آن است.
متوجه نمیشم چطور میشه مشکل اصلیش Open Source بودن باشه! اولا خب اگه مشکله شما Close Source بنویس و ثانیا واسه Javascript اصلا متن باز یا بسته بودن مطرح نمیشه. Javascript توی مرورگر اجرا میشه و در هر صورت کدت قابل مشاهده ست.

در مورد اون شماره هایی هم که شمردی بله Java این قابلیت هارو داره و اصولا هر فریمورک دیگه ای هم این قابلیت هارو داره. اگه فقط به اینا نیاز داری هیچ لزومی نداره زبون جدیدی مثل جاوا رو یاد بگیری. اونم با این تجربه ای که میگی با PHP داری. :چشمک: به جز آخری که اصلا متوجه نمیشم این Resizable، Draggable و... یعنی چی. اگه یه توضیحی در موردشون بدی واسه من و دیگران هم مفیده.


آیا می توان از JAVA به عنوان جایگزین PHP + JavaScript استفاده کرد؟ تا بتونم پروژه های Close Source ارائه دهم؟
از این نظر که با Java هم میتونی برنامه های تحت وب بنویسی میتونی اونو جایگزین PHP در نظر بگیری، البته هیچ زبونی جایگزین زبون دیگه نیست. در ضمن Java هیچوقت جایگزین Javascript نمیشه. Javascript سمت کلاینت و توی مرورگر اجرا میشه و برنامه هایی که با PHP یا Java مینویسی باید سمت سرور اجرا بشن.

در کل فریمورکها و زبون ها زیاد ارجحیتی به هم ندارن. تفاوت برنامه ها به دلیل تفاوت برنامه نویساست نه تفاوت زبان ها.
موفق باشی.

ali_vavan2009
سه شنبه 08 مهر 1393, 11:20 صبح
ممنون از پاسخ های کاملتان


شما با این تجربه حتما باید بدونی که PHP هم مستقل از پلتفرمه و هم متن بازه.
به این خاطر گفتم Cross-platform چون بعضی زبان ها مثل VB فقط در یک سیستم عامل قابل اجرا هستند.


بله Java مستقل از پلتفرمه. هرچند PHP هم هست. در مورد Close Source هم خب بله شما میتونی برنامه ت رو بصورت Close Source صادر کنی. هرچند در مورد برنامه نویسی وب هیچوقت کاربر کد شما رو مشاهده نمیکنه، یکم نامفهومه.
در بعضی پروژه ها نیاز به ارائه برنامه به کاربر یا نصب در سرور آنها است. که کاربر می تواند به Source دسترسی پیدا کند.


متوجه نمیشم چطور میشه مشکل اصلیش Open Source بودن باشه! اولا خب اگه مشکله شما Close Source بنویس و ثانیا واسه Javascript اصلا متن باز یا بسته بودن مطرح نمیشه. Javascript توی مرورگر اجرا میشه و در هر صورت کدت قابل مشاهده ست.
اتفاقا در بعضی پروژه های ما Close Source بدون JavaScript مطرح هست. چون همین دسترسی داشتن کاربر به JavaScript می تواند کله زحمات ما را هدر دهد.
به همان دلیل که PHP را Close Source می کنند، به همان دلیل هم ما نیاز داریم تا JavaScript را Close Source کنیم.
و چون نمی توان JavaScript را Close Source کرد. در نتیجه یا باید از روشی استفاده کنیم که Source قابل دسترس کاربر نباشه. یا از زبان های برنامه نویسی دیگر استفاده کرد.


در مورد اون شماره هایی هم که شمردی بله Java این قابلیت هارو داره و اصولا هر فریمورک دیگه ای هم این قابلیت هارو داره. اگه فقط به اینا نیاز داری هیچ لزومی نداره زبون جدیدی مثل جاوا رو یاد بگیری. اونم با این تجربه ای که میگی با PHP داری. :چشمک: به جز آخری که اصلا متوجه نمیشم این Resizable، Draggable و... یعنی چی. اگه یه توضیحی در موردشون بدی واسه من و دیگران هم مفیده.
تا جایی که در این 8 سال متوجه شدم، متاسفانه خوده PHP را هم نمیشه Close Source کرد عملا برنامه هایی مثل Zend , sourceguardian , ioncube و... کدها را Encode یا Encrypt می کنند و برای اجرا شدن کدها نیاز به نصب Module در سرور هست.
اما نمی خوام Source را Encode یا Encrypt کنم.

در مورد Resizable، Draggable و... در لینک زیر قسمت Interactions را مشاهده کنید:
http://jqueryui.com/demos


از این نظر که با Java هم میتونی برنامه های تحت وب بنویسی میتونی اونو جایگزین PHP در نظر بگیری، البته هیچ زبونی جایگزین زبون دیگه نیست. در ضمن Java هیچوقت جایگزین Javascript نمیشه. Javascript سمت کلاینت و توی مرورگر اجرا میشه و برنامه هایی که با PHP یا Java مینویسی باید سمت سرور اجرا بشن.
می خوام با Java سایت بنویسم. وقتی PHP هست نیازی به جایگزینی زبانی دیگر برای برنامه نویسی تحت وب ندارم.
نمیگم که Java می تونه جایگزین JavaScript بشه، فقط می خوام امکانات Resizable، Draggable و... را در Java هم استفاده کنم.
فقط می خوام یک برنامه ای را با Java بنویسم که کاملا Close Source باشه و بتوان از آن در تمام سیستم عامل ها استفاده کرد. ( این برنامه نیازی به تحت وب استفاده شدن نداره و می تونه در سیستم عامل اجرا بشه. )


در کل فریمورکها و زبون ها زیاد ارجحیتی به هم ندارن. تفاوت برنامه ها به دلیل تفاوت برنامه نویساست نه تفاوت زبان ها.
اما در بعضی برنامه ها زبان های برنامه نویسی می تواند تفاوت ایجاد کنند.
مثلا شما با JavaScript نمی تونید در سرور فایل بسازید و ویرایش کنید. اما می توان این کار را با PHP انجام داد.
چون JavaScript سمت Client هست. و PHP سمت Server.

پس در بعضی برنامه ها زبان برنامه نویسی می تواند تفاوت ایجاد کنند. که باعث استفاده از چند زبان برنامه نویسی در یک برنامه می شود.


در حال حاضر مهم ترین مشکل، الان فقط با JavaScript هست که نمی خوام کاربر به آن دسترسی پیدا کند.

برای این کار 2 راه حل وجود دارد:
1- استفاده از زبان برنامه نویسی دیگر
2- تبدیل نرم افزار های تحت وب به نرم افزار تحت سیستم عامل (http://barnamenevis.org/showthread.php?470908-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8-%D8%A8%D9%87-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%AA%D8%AD%D8%AA-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-%D9%88-Close-Source%D8%9F%D8%9F%D8%9F)



موفق باشی.
همچنین شما

محمد فدوی
سه شنبه 08 مهر 1393, 11:54 صبح
درمورد لینکی که واسه Draggable و... گذاشتید باید بگم اینا صرفا مثالهایی از jQuery بود. در مورد اینی هم که گفتین Javascript دسترسی به IO نداره این واقعیت مربوط به محدودیت امنیت در سمت Client هست وگرنه ضعف از Javascript نیست. مثلا چنین قابلیت هایی توی تکنولوژی های سمت سروری مثل NodeJS وجود داره.

در مورد جایگزینی هم باید بگم هیچوقت نمیشه JavaScript رو از دید Client مخفی کرد. حتی اگر اینکار رو در سمت سرور انجام بدین مجبورید سورس JavaScript رو به Client بدین تا بتونه روی مرورگر اجراش کنه. قابلیت هایی هم که از Javascript نام بردین رو باید با خود این زبون پیاده سازی کنین.

ali_vavan2009
سه شنبه 08 مهر 1393, 12:08 عصر
درمورد لینکی که واسه Draggable و... گذاشتید باید بگم اینا صرفا مثالهایی از jQuery بود.
همان طور که میدانید jQuery یک Framwork از JavaScript هست.
و هر کار که با jQuery بشه انجام داد را می توان با JavaScript هم انجام داد.


در مورد اینی هم که گفتین Javascript دسترسی به IO نداره این واقعیت مربوط به محدودیت امنیت در سمت Client هست وگرنه ضعف از Javascript نیست.
درسته ضعف نیست.
اما همین محدودیت ها باعث تفاوت در زبان های برنامه نویسی میشه.


مثلا چنین قابلیت هایی توی تکنولوژی های سمت سروری مثل NodeJS وجود داره.
تا جایی که می دونم NodeJS با اصول زبان JavaScript امکان ساخت برنامه به کاربر می دهد و با JavaScript که در مرورگر کاربر اجرا میشود فقط در نحوه نوشته شدن کدها یکسان هستند. وگرنه کلا به هم ربطی ندارند.

کلا بحث JavaScript در Server و Client بره کنار.


در مورد جایگزینی هم باید بگم هیچوقت نمیشه JavaScript رو از دید Client مخفی کرد. حتی اگر اینکار رو در سمت سرور انجام بدین مجبورید سورس JavaScript رو به Client بدین تا بتونه روی مرورگر اجراش کنه. قابلیت هایی هم که از Javascript نام بردین رو باید با خود این زبون پیاده سازی کنین.

بخاطر اینکه نمیشه JavaScript را از کاربر پنهان کرد، باید یکی از 2 راه حل زیر را انتخاب کرد:
1- استفاده از زبان برنامه نویسی دیگر
2- تبدیل نرم افزار های تحت وب به نرم افزار تحت سیستم عامل (http://barnamenevis.org/showthread.php?470908-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8-%D8%A8%D9%87-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%AA%D8%AD%D8%AA-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-%D9%88-Close-Source%D8%9F%D8%9F%D8%9F)

cups_of_java
سه شنبه 08 مهر 1393, 19:28 عصر
در حال حاضر مهم ترین مشکل، الان فقط با JavaScript هست که نمی خوام کاربر به آن دسترسی پیدا کند.

برای این کار 2 راه حل وجود دارد:
1- استفاده از زبان برنامه نویسی دیگر
2- تبدیل نرم افزار های تحت وب به نرم افزار تحت سیستم عامل (http://barnamenevis.org/showthread.php?470908-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8-%D8%A8%D9%87-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%AA%D8%AD%D8%AA-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-%D9%88-Close-Source%D8%9F%D8%9F%D8%9F)

راه اول کلن درست نیست و اصلن ربطی به مشکل شما نداره. ولی راه دوم کمی کاربرتون رو دچار مشکل میکنه (مثل ماشینی که قفل فرمون داره و دزدیش سخت تره اما میدونیم که غیر قابل دزدی نیست)
در راه دوم هم decompile کردن امکان پذیره....

اما اگه باید وب بنویسید می تونید جاوااسکریپت هاتون رو درهم برهم کنید که خونده نشه. (کاری که گوگل و ... میکنند)

نهایتن موضوعی که شما دنبالشی هیچ ربطی به زبان برنامه نویسی نداره و توی همه زبان ها این مسائل مطرحه و راه حل هایی براش وجود داره.... :)

ali_vavan2009
سه شنبه 08 مهر 1393, 21:49 عصر
راه اول کلن درست نیست و اصلن ربطی به مشکل شما نداره. ولی راه دوم کمی کاربرتون رو دچار مشکل میکنه (مثل ماشینی که قفل فرمون داره و دزدیش سخت تره اما میدونیم که غیر قابل دزدی نیست)
در راه دوم هم decompile کردن امکان پذیره....

اما اگه باید وب بنویسید می تونید جاوااسکریپت هاتون رو درهم برهم کنید که خونده نشه. (کاری که گوگل و ... میکنند)

نهایتن موضوعی که شما دنبالشی هیچ ربطی به زبان برنامه نویسی نداره و توی همه زبان ها این مسائل مطرحه و راه حل هایی براش وجود داره.... :)

ممنون دوست عزیز

در پست های قبلی گفتم و باز هم میگم: مهم نیست برنامه مورد نظر با زبان های تحت وب نوشته شود.
فقط مسئله مهم برای من Close Source بودن کامل پروژه هست و همین.

در کل می خواستم بدونم آیا می تونم برنامه ای را که با HTML, CSS, JavaScript, PHP نوشته شده را با Java هم بنویسم و Close Source کنم؟

cups_of_java
چهارشنبه 09 مهر 1393, 08:03 صبح
در کل می خواستم بدونم آیا می تونم برنامه ای را که با HTML, CSS, JavaScript, PHP نوشته شده را با Java هم بنویسم
بله چرا که نه!



و Close Source کنم؟
توضیح دادم که این سوالت بی معنیه