1. Большие компании слезут с Java. Может быть. Много маленьких тоже. Может быть. (Elasticsearch в перспективе перестанет поддерживаться, проблемы с deeplearning4j).нет
2. Больше нет кучи бесплатных enterprise, да и не enterprise тестировщиков. Наверно.неверно
3. Плавное сокращение количества поддерживаемых фреймворков. Под вопросом (для меня) поддержка в долгосрочной перспективе Spring.нет
4. Люди будут переучиваться на другие языки (не-jvm Scala, Rust, Haskell), коммьюнити Java будет плавно вымирать, зима близко в общем.нет
logging.level.org.springframework.security=DEBUG
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
logging.level.org.hibernate.type=TRACE
2019-05-25 20:20:12.446 DEBUG 21154 --- [nio-8080-exec-2] o.s.s.p.JdbcUserDetailsManager : Query returned no results for user ''
2019-05-25 20:20:12.450 DEBUG 21154 --- [nio-8080-exec-2] o.s.s.a.dao.DaoAuthenticationProvider : User '' not found
org.springframework.security.authentication.BadCredentialsException: Bad credentials
.formLogin()
.loginPage("/login")
.usernameParameter("name")
.passwordParameter("password")
Понятно, что ЯП это всего лишь средство передачи алгоритма от человека к компьютеру.
Следует ли из этого, что специализироваться на одном ЯП глупо?
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.Timer;
public class Countdown {
private final JLabel label = new JLabel("...");
private final JButton button = new JButton("Click me");
private final Timer timer;
private int count = 3;
public Countdown() {
timer = new Timer(1000, e -> {
if (count > 0) {
label.setText(String.valueOf(count--));
} else {
((Timer) (e.getSource())).stop();
count = 3;
button.setEnabled(true);
}
});
timer.setInitialDelay(0);
button.addActionListener(e -> {
timer.start();
button.setEnabled(false);
});
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(label, BorderLayout.PAGE_START);
frame.add(button, BorderLayout.PAGE_END);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new Countdown();
}
}